Contact

WPML, Polylang, Wordpress

Apprenez à créer un site multilingue avec nous

Nous trouver

Afterglow Web Agency
5, rue Alexandre Dumas
06100 Nice
France

Ajouter des balises hreflang sur le blog de WordPress

Si vous possédez un site multilingue sous WordPress et WPML, par défaut, les balises hreflang si utiles au référencement de vos pages ne sont pas crées sur la page de blog.

Voici une fonction que vous pouvez coller dans le fichier functions.php de votre thème pour corriger ça.

/**
* Add Hreflang Link on Blog Page
* @hooks on wp_head
* @return string 
* Author : Afterglow Web Agency
*/
function afg_hreflangOnBlog() {
    if(!function_exists('icl_get_languages')) return;

    if(is_home()) {
        $defaultLanguage = apply_filters('wpml_default_language', NULL );
        $siteLanguages = icl_get_languages('skip_missing=1&orderby=code');
        
        foreach ($siteLanguages as $l) {
            $code = $l['language_code'];
            echo $code != $defaultLanguage ? 
                '<link rel="alternate" hreflang="'.$code.'" href="'.get_post_type_archive_link( 'post' ).'/'.$code.'/">' 
                : 
                '<link rel="alternate" hreflang="'.$code.'" href="'.get_post_type_archive_link( 'post' ).'">';
        }
    }
}

add_Action( 'wp_head', 'afg_hreflangOnBlog');

Ce code ajoutera toutes les balises hreflang correspondant aux langues de votre site dans la balise head de votre page de blog. Peu importe que le blog soit la page d’accueil de votre site ou une page interne.

Attention, pour être totalement compatible avec WPML ce code devrait récupérer le schéma d’url configuré dans WPML. En effet certaines personnes utilisent des sous domaines plutôt que des sous répertoires pour les différentes langues de leur site web.
Ce code supporte les langues configurées en sous répertoires.
Si vous souhaitez un exemple avec la gestion des sous-domaines, envoyez nous simplement un message !