WPML
Stato
Risolto
Segnalato per
WPML SEO 2.2.4
Risolto in
WPML SEO 2.2.5
Plugin/tema correlato
Rank Math SEO
Tag dell’argomento
Compatibility

Panoramica del problema

Quando usi RankMath SEO con WPML, potresti riscontrare un problema in cui gli URL della homepage nel codice sorgente delle sitemap <xhtml:link rel="alternate" hreflang="..."> sono errati per le lingue secondarie. Invece di mostrare la homepage specifica per la lingua (ad es., domain.com/?lang=es), la sitemap genera un URL completo della pagina (ad es., domain.com/page-slug/?lang=es).

Soluzione alternativa

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


  • Apri il file …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.

  • Cerca la riga 88.

  • Sostituisci:
    			$mapPermalink = function ( $id, $language ) use ( $getPermalink ) {
    				return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language );
    			};
            


  • Con:
    			$mapPermalink = function ( $id, $language ) use ( $getPermalink ) {
    
    				// WPML Workaround for wpmlsupp-13368 
    				$front_id = (int) get_option( 'page_on_front' );
    				if ( $front_id ) {
    					$default_lang = apply_filters( 'wpml_default_language', null );
    					$id_in_default = (int) apply_filters( 'wpml_object_id', (int) $id, 'page', false, $default_lang );
    					if ( $id_in_default && $id_in_default === $front_id ) {
    						return apply_filters( 'wpml_permalink', trailingslashit( home_url() ), $language );
    					}
    				}
    
    				return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language );
    			};
            

  • Ricrea le sitemap: Vai su “Rank Math > Sitemap Settings”, modifica il valore “Links per sitemap” e salva.

Tutti i problemi noti →