WPML
Stato
Aperto
Segnalato per
WPML SEO 2.1.0
Plugin/tema correlato
Rank Math SEO
Tag dell’argomento
Compatibility

Panoramica del problema

Se stai usando il plugin Rank Math SEO, in particolare la versione Pro con la funzionalità News Sitemap abilitata, potresti riscontrare un problema in cui i tag <news:language> all’interno del file news-sitemap.xml mostrano in modo errato il codice della lingua predefinita del sito per gli articoli nelle lingue secondarie.

Soluzione alternativa

Assicurati di avere un backup completo del tuo sito prima di procedere.


  • Apri il file …/wp-content/plugins/seo-by-rank-math-pro/includes/modules/news-sitemap/class-news-sitemap.php.

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

  • Con:
    		//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
  • Inoltre, potrebbe essere necessario disabilitare la cache della sitemap. Per farlo, puoi aggiungere la seguente riga al file functions.php del tuo tema:
    add_filter( 'rank_math/sitemap/enable_caching', '__return_false');

Tutti i problemi noti →