WPML
상태
미해결
관련 플러그인/테마
Header Footer Code Manager
주제 태그
Compatibility

문제 개요

Header Footer Code Manager 플러그인을 사용하여 특정 페이지에 스니펫을 삽입할 때, WPML을 사용하면 번역된 페이지에 표시 조건이 올바르게 적용되지 않습니다. 이로 인해 번역된 버전의 페이지에서 스니펫이 누락됩니다.

임시 해결 방법

진행하기 전에 전체 사이트 백업을 완료했는지 확인하세요.


  • …/wp-content/plugins/header-footer-code-manager/99robots-header-footer-code-manager.php 파일을 여세요.

  • 550번째 줄을 찾으세요.

  • 다음을:
    case 's_pages':
        $is_not_empty_s_pages = self::hfcm_not_empty( $scriptdata, 's_pages' );
        if ( $is_not_empty_s_pages ) {
            // Gets the page ID of the blog page
            $blog_page = get_option( 'page_for_posts' );
            // Checks if the blog page is present in the array of selected pages
            if ( in_array( $blog_page, json_decode( $scriptdata->s_pages ) ) ) {
                if ( is_page( json_decode( $scriptdata->s_pages ) ) || (!is_front_page() && is_home()) ) {
                    $out = self::hfcm_render_snippet( $scriptdata );
                }
            } elseif ( is_page( json_decode( $scriptdata->s_pages ) ) ) {
                $out = self::hfcm_render_snippet( $scriptdata );
            }
        }
        break;
            


  • 다음으로 대체하세요:
    case 's_pages':
        $is_not_empty_s_pages = self::hfcm_not_empty( $scriptdata, 's_pages' );
        if ( $is_not_empty_s_pages ) {
            // WPML workaround for compsupp-7802
            $original_ids = json_decode( $scriptdata->s_pages);
            foreach ( $original_ids as $original_id ) {
                $translated_ids[] = apply_filters( 'wpml_object_id', $original_id, 'page');
                }
            // Gets the page ID of the blog page
            $blog_page = get_option( 'page_for_posts' );
            // Checks if the blog page is present in the array of selected pages
            if ( in_array( $blog_page, json_decode( $scriptdata->s_pages ) ) ) {
                if ( is_page( $translated_ids ) || (!is_front_page() && is_home()) ) {
                    $out = self::hfcm_render_snippet( $scriptdata );
                }
            } elseif ( is_page( $translated_ids ) ) {
                $out = self::hfcm_render_snippet( $scriptdata );
            }
        }
        break;
            

알려진 모든 문제 →