WPML
Status
Gelöst
Gemeldet für
WPML Multilingual CMS 3.3.6
Gelöst in
3.3.6

Übersicht über das Problem

Die hreflang-Meta-Tags fehlen möglicherweise im Header der Seite. Dies geschieht seit WPML 3.3.6 in Kombination mit Themes oder Plugins, die WPML zu früh laden.

WPML sollte <link hreflang=”lang”>-Tags in den Header-Bereich Ihrer Website einfügen. Dies fehlt auf einigen Websites, die WPML 3.3.6 verwenden, sowie in Kombination mit einigen Plugins oder Themes. Das Problem tritt auf, weil WPML versucht, diese Tags früh im Header auszugeben, andere Plugins jedoch eine Race Condition verursachen und WPML zu früh auslösen. Möglicherweise erhalten Sie eine E-Mail von den Google Webmaster-Tools mit dem Hinweis „Falsche hreflang-Implementierung“.

Die vollständige Beschreibung dieser Funktionalität finden Sie in den Inhaltsrichtlinien von Google für sprachspezifische und regionale URLs.

Problemumgehung

Um dies in WPML 3.3.6 zu beheben:


  1. Öffnen Sie die Datei sitepress-multilingual-cms/sitepress.class.php

  2. Scrollen Sie zum Ende dieser Datei, wo Sie Folgendes sehen sollten: Screenshot 2016-02-24 um 10.47.11

  3. Ersetzen Sie diese Zeile: add_action( 'wp_head', array( $this, 'head_langs' ), 1 );

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

  5. Die endgültige Version dieses Codes muss so aussehen: Screenshot 2016-02-24 um 11.00.04

  6. Speichern Sie die Datei

In der nächsten Version von WPML wird dieselbe Lösung angewendet.

Der Code in Schritt 3 sollte bewirken, dass die hreflang-Meta-Tags so früh wie möglich ausgegeben werden, aber dies verursacht Probleme mit einigen Themes und Plugins.

Wenn Sie dennoch möchten, dass die hreflang-Meta-Tags so früh wie möglich ausgegeben werden, können Sie eine komplexere Lösung anwenden. Fügen Sie diesen Code zur Datei functions.php Ihres Themes hinzu:

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');

Alle bekannten Probleme →