WPML
Status
Aberto
Relatado para
WPML SEO 2.1.0
Plugin/tema relacionado
Rank Math SEO
Tags de tópico
Compatibility

Visão geral do problema

Se você estiver usando o plugin Rank Math SEO, especificamente a versão Pro com o recurso News Sitemap ativado, você pode encontrar um problema em que as tags <news:language> dentro do arquivo news-sitemap.xml exibem incorretamente o código de idioma do idioma padrão do site para posts em idiomas secundários.

Solução alternativa

Certifique-se de ter um backup completo do seu site antes de prosseguir.


  • Abra o arquivo …/wp-content/plugins/seo-by-rank-math-pro/includes/modules/news-sitemap/class-news-sitemap.php.

  • Substitua:
    		$output .= $this->get_news_publication( $renderer );

  • Por:
    		//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
  • Além disso, pode ser necessário desativar o cache do sitemap. Para fazer isso, você pode adicionar a seguinte linha ao arquivo functions.php do seu tema:
    add_filter( 'rank_math/sitemap/enable_caching', '__return_false');

Todos os problemas conhecidos →