WPML
상태
개발자 대기 중
관련 플러그인/테마
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
    			);
    
            

알려진 모든 문제 →