- 상태
- 개발자가 해결함
- 관련 플러그인/테마
- WP Event Manager
- 주제 태그
- Compatibility
문제 개요
WP Event Manager 및 WPML로 생성된 이벤트를 번역할 때 Organizer 및 Venue 필드가 프런트엔드에서 항상 기본 언어로 표시되지는 않습니다.
임시 해결 방법
진행하기 전에 반드시 사이트를 전체 백업하세요.
다음 변경 사항을 적용해야 합니다.
- WPML → 설정 → 사용자 정의 필드 번역으로 이동하세요.
- _event_organizer_ids 및 _event_venue_ids 사용자 정의 필드를 복사로 설정하세요.
- 그런 다음 /wp-content/plugins/wp-event-manager/wp-event-manager-template.php 파일을 여세요.
- 1229번째 줄을 찾으세요.
- 다음을:
foreach ($post->_event_organizer_ids as $key => $organizer_id) {다음으로 변경하세요:
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 ); } - 다음으로 /wp-content/plugins/wp-event-manager/wp-event-manager-functions.php 파일을 여세요.
- 1903번째 줄을 찾으세요.
- 다음을:
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 : ''; }다음으로 변경하세요:
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 : ''; } - 마지막으로 같은 파일에서 1985번째 줄을 찾으세요.
- 다음을:
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 : ''; }다음으로 변경하세요:
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 : ''; }