- Статус
- Открыто
- Связанный плагин/тема
- 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;