- Status
- Vom Autor gelöst
- Zugehöriges Plugin/Theme
- WP Event Manager
- Themen-Tags
- Compatibility
Übersicht über das Problem
Beim Übersetzen von Ereignissen, die mit WP Event Manager und WPML erstellt wurden, werden die Felder Organizer und Venue im Frontend nicht immer in der Standardsprache angezeigt.
Problemumgehung
Bitte stellen Sie sicher, dass Sie über ein vollständiges Backup Ihrer Website verfügen, bevor Sie fortfahren.
Sie müssen die folgenden Änderungen vornehmen.
- Gehen Sie zu WPML → Einstellungen → Übersetzung benutzerdefinierter Felder
- Setzen Sie die benutzerdefinierten Felder _event_organizer_ids und _event_venue_ids auf Kopieren.
- Öffnen Sie dann die Datei /wp-content/plugins/wp-event-manager/wp-event-manager-template.php.
- Suchen Sie nach Zeile 1229.
- Ändern Sie:
foreach ($post->_event_organizer_ids as $key => $organizer_id) {zu:
foreach ($post->_event_organizer_ids as $key => $organizer_id) { // WPML Workaround for compsupp-6662 if (class_exists('SitePress')) { $organizer_id = apply_filters( 'wpml_object_id', $organizer_id, 'event_organizer', TRUE ); } - Öffnen Sie als Nächstes die Datei /wp-content/plugins/wp-event-manager/wp-event-manager-functions.php.
- Suchen Sie nach Zeile 1903.
- Ändern Sie:
function get_event_organizer_ids( $post = null ) { $post = get_post( $post ); if ( $post->post_type !== 'event_listing' ) return; return !empty($post->_event_organizer_ids) ? $post->_event_organizer_ids : ''; }zu:
function get_event_organizer_ids( $post = null ) { $post = get_post( $post ); if ( $post->post_type !== 'event_listing' ) { return; } // WPML Workaround for compsupp-6662 if ( class_exists('SitePress') && !empty($post->_event_organizer_ids) ) { foreach ($post->_event_organizer_ids as $key => $organizer_id ) { $result = $post->_event_organizer_ids; $result[$key] = apply_filters( 'wpml_object_id', $organizer_id, 'event_organizer', TRUE ); } return $result; } return !empty($post->_event_organizer_ids) ? $post->_event_organizer_ids : ''; } - Suchen Sie schließlich in derselben Datei nach Zeile 1985.
- Ändern Sie:
function get_event_venue_ids( $post = null ) { $post = get_post( $post ); if ( $post->post_type !== 'event_listing' ) return; return !empty($post->_event_venue_ids) ? $post->_event_venue_ids : ''; }zu:
function get_event_venue_ids( $post = null ) { $post = get_post( $post ); if ( $post->post_type !== 'event_listing' ) return; // WPML Workaround for compsupp-6662 if ( class_exists('SitePress') && !empty($post->_event_venue_ids) ) { $result = apply_filters( 'wpml_object_id', $post->_event_venue_ids , 'event_listing', TRUE ); return $result; } return !empty($post->_event_venue_ids) ? $post->_event_venue_ids : ''; }