WPML
Статус
Открыто
Заявлено для
WPML SEO 2.1.0
Связанный плагин/тема
Rank Math SEO
Теги темы
Compatibility

Обзор проблемы

Если Вы используете плагин Rank Math SEO, в частности версию Pro с включенной функцией News Sitemap, Вы можете столкнуться с проблемой, при которой теги <news:language> в файле news-sitemap.xml некорректно отображают код языка сайта по умолчанию для записей на дополнительных языках.

Обходное решение

Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия сайта.


  • Откройте файл …/wp-content/plugins/seo-by-rank-math-pro/includes/modules/news-sitemap/class-news-sitemap.php.

  • Замените:
    		$output .= $this->get_news_publication( $renderer );

  • На:
    		//start WPML workaround
    		global $sitepress;
    		remove_filter(
    			'get_pages',
    			[ $sitepress, 'get_pages_adjust_ids' ],
    			1
    		);
    		$my_post_language_details = apply_filters( 'wpml_post_language_details', NULL, url_to_postid($url["loc"]) );
    		$xmlString = $this->get_news_publication( $renderer );
    		$pattern = '/(<news:language>)[^<>]*(</news:language>)/i';
    		$replacement = '${1}'. $my_post_language_details["language_code"] .'$2';
    		$modifiedXmlString = preg_replace($pattern, $replacement, $xmlString);
    		$output .= $modifiedXmlString;
    		//end WPML workaround
  • Кроме того, Вам также может потребоваться отключить кеширование XML-карты сайта. Для этого Вы можете добавить следующую строку в файл functions.php Вашей темы оформления:
    add_filter( 'rank_math/sitemap/enable_caching', '__return_false');

Все известные проблемы →