WPML
Stato
Risolto
Segnalato per
WPML Multilingual CMS 3.3.6
Risolto in
3.3.6

Panoramica del problema

I meta tag hreflang potrebbero mancare dall’header della pagina. Questo accade a partire da WPML 3.3.6, in combinazione con temi o plugin che caricano WPML troppo presto.

WPML dovrebbe includere i tag <link hreflang=”lang”> nella sezione header del tuo sito. Questo manca in alcuni siti che usano WPML 3.3.6 e in combinazione con alcuni plugin o temi. Il problema si verifica perché WPML tenta di generare questi tag all’inizio dell’header, ma altri plugin causano una race condition, attivando WPML troppo presto. Potresti ricevere un’e-mail da Google Webmaster tool che indica “Implementazione hreflang errata”.

La descrizione completa di questa funzionalità appare nelle linee guida di Google sui contenuti per gli URL per lingue e aree geografiche.

Soluzione alternativa

Per risolvere questo problema in WPML 3.3.6:


  1. Apri il file sitepress-multilingual-cms/sitepress.class.php

  2. Scorri fino in fondo a questo file, dove dovresti vedere questo: Schermata del 2016-02-24 alle 10.47.11

  3. Sostituisci questa riga: add_action( 'wp_head', array( $this, 'head_langs' ), 1 );

  4. Con: add_action( 'wp_head', array( $this, 'head_langs' ) );

  5. La versione finale di questo codice deve avere questo aspetto: Schermata del 2016-02-24 alle 11.00.04

  6. Salva il file

Nella prossima versione di WPML, verrà applicata la stessa correzione.

Il codice al passaggio 3 aveva lo scopo di stampare i meta tag hreflang il prima possibile, ma questo causa problemi con alcuni temi e plugin.

Se desideri comunque che i meta tag hreflang vengano stampati il prima possibile, puoi applicare una soluzione più complessa. Aggiungi questo codice al file functions.php del tuo tema:

function my_handle_head_hreflang() {
   global $sitepress;

   $settings = $sitepress->get_settings();
   if ( $settings[ 'seo' ][ 'head_langs' ] ) {
      remove_action( 'wp_head', array( $sitepress, 'head_langs' ) );
      add_action( 'wp_head', array( $this, 'head_langs' ), 1 );
   }
}

add_action('wpml_loaded', 'my_handle_head_hreflang');

Tutti i problemi noti →