- 상태
- 개발자 대기 중
- 관련 플러그인/테마
- Custom Permalinks
- 주제 태그
- Compatibility
문제 개요
WPML과 함께 Custom Permalinks를 사용할 때, 대상 페이지가 사용자 정의 고유주소를 사용하는 경우 번역된 페이지로 연결되는 내부 링크가 번역된 페이지 대신 원본 언어 페이지를 가리킬 수 있습니다.
임시 해결 방법
진행하기 전에 전체 사이트 백업을 완료했는지 확인하세요.
임시 해결 방법 – 1부
- …/wp-content/plugins/custom-permalinks/includes/class-custom-permalinks-frontend.php 파일을 여세요.
- 165번째 줄을 찾으세요.
- 변경 전:
public function wpml_permalink_filter( $permalink, $language_code ) { $custom_permalink = $permalink;
- 변경 후:
public function wpml_permalink_filter( $permalink, $language_code ) { $custom_permalink = $permalink; $language_code = apply_filters( 'wpml_current_language', NULL );
임시 해결 방법 – 2부
- 동일한 파일(class-custom-permalinks-frontend.php)에서 계속 진행하세요.
- 913번째 줄을 찾으세요.
- 변경 전:
public function custom_page_link( $permalink, $page ) { $custom_permalink = get_post_meta( $page, 'custom_permalink', true ); if ( $custom_permalink ) { $language_code = apply_filters( 'wpml_element_language_code', null, array( 'element_id' => $page, 'element_type' => 'page', ) ); $permalink = $this->wpml_permalink_filter( $custom_permalink, $language_code );
- 변경 후:
public function custom_page_link( $permalink, $page ) { $custom_permalink = get_post_meta( $page, 'custom_permalink', true ); if ( $custom_permalink ) { $language_code = apply_filters( 'wpml_element_language_code', null, array( 'element_id' => $page, 'element_type' => 'page', ) ); $page_translated = apply_filters( 'wpml_object_id', $page, 'page', $language_code ); $custom_translated_permalink = get_post_meta( $page_translated, 'custom_permalink', true ); if ( $custom_translated_permalink ) { $custom_permalink = $custom_translated_permalink; } $permalink = $this->wpml_permalink_filter( $custom_permalink, $language_code );