- Statut
- Résolu
- Signalé pour
- WPML SEO 2.2.4
- Résolu dans
- WPML SEO 2.2.5
- Extension/thème associé
- Rank Math SEO
- Étiquettes de sujet
- Compatibility
Aperçu de l’anomalie
Lorsque vous utilisez RankMath SEO avec WPML, vous pouvez rencontrer un problème où les URL de la page d’accueil dans le code source des sitemaps XML <xhtml:link rel="alternate" hreflang="..."> sont incorrectes pour les langues secondaires. Au lieu d’afficher la page d’accueil spécifique à la langue (par exemple, domain.com/?lang=es), le sitemap XML génère une URL de page complète (par exemple, domain.com/page-slug/?lang=es).
Solution de contournement
Veuillez vous assurer d’avoir une sauvegarde complète de votre site avant de continuer.
- Ouvrez le fichier …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.
- Recherchez la ligne 88.
- Remplacez :
$mapPermalink = function ( $id, $language ) use ( $getPermalink ) { return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language ); };
- Par :
$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 ); };
- Reconstruisez les sitemaps XML : Allez dans « Rank Math > Sitemap Settings », modifiez la valeur « Links per sitemap », et enregistrez.