2016-04-05 4 views
0

WPML ist ein exzellentes Plugin für die Verwaltung mehrsprachiger Websites, da es viele relevante Informationen zu übersetzten Inhalten bearbeiten kann. Obwohl dieses Plugin hreflang -Tags hinzufügt, gibt es keine Unterstützung für die Anrede hreflang = "x-default".Wie hreflang = '' x-default '' in WPML 3.3.6 Plugin?

Also ich würde gerne wissen, wie diese X-Standard-Tag zu WPML-Sites hinzuzufügen, und es auf meine gewünschte Sprachversion einer URL verweisen.

Es gibt einige Beispiele für Code in WPML-Foren, aber sie sind für ältere Versionen dieses Plugins gedacht. Alle von ihnen zeigen, um die Funktion head_langs zu bearbeiten, die derzeit auf dem folgenden Code besteht:

function head_langs() 
    { 
     $languages = $this->get_ls_languages(array('skip_missing' => true)); 
     // If there are translations and is not paged content... 

     //Renders head alternate links only on certain conditions 
     $the_post = get_post(); 
     $the_id = $the_post ? $the_post->ID : false; 
     $is_valid = count($languages) > 1 && !is_paged() && (((is_single() || is_page()) && $the_id && get_post_status($the_id) == 'publish') || (is_home() || is_front_page() || is_archive())); 

     if ($is_valid) { 
      foreach ($languages as $code => $lang) { 
       $alternate_hreflang = apply_filters('wpml_alternate_hreflang', $lang[ 'url' ], $code); 
       printf('<link rel="alternate" hreflang="%s" href="%s" />' . PHP_EOL, 
         $this->get_language_tag($code), 
         str_replace('&amp;', '&', $alternate_hreflang)); 
      } 
     } 
    } 

Vielen Dank im Voraus!

Antwort

-1

Ich hatte das gleiche Problem und ich wollte nicht die Kern-WPML-Dateien überschreiben noch fand ich eine Lösung mit einem WPML-Filter arbeiten, so schrieb ich einfach die x-default hreflang in den WordPress-Header wie folgt:

// add x-default to hreflang 
function x_default_hreflang() { 
    $languages = icl_get_languages('skip_missing=1'); 
    foreach($languages as $l){ 
     if ($l['language_code'] == 'en') { // set your default language 
      $x_default_url = $l['url']; 
      $output='<link rel="alternate" hreflang="x-default" href="' . $x_default_url . '" />' . PHP_EOL; 
      echo $output; 
     } 
    } 
} 

add_action('wp_head','x_default_hreflang',1); 

die Priorität auf der add_action ist ziemlich hoch, so dass die alternative Verbindung hreflang unterhalb den anderen outputed, aber soweit ich weiß, das ist nicht wirklich notwendig.

0
/* --------------------------------------------------------------------------- 
* Set hreflang="x-default" according to Google content guidelines with WPML 
* Put into your functions.php - don't forget to use a child-theme ;-) 
* --------------------------------------------------------------------------- */ 
add_filter('wpml_alternate_hreflang', 'wps_head_hreflang_xdefault', 10, 2); 
function wps_head_hreflang_xdefault($url, $lang_code) { 

    if($lang_code == apply_filters('wpml_default_language', NULL)) { 

     echo '<link rel="alternate" href="' . $url . '" hreflang="x-default" />'; 
    } 

    return $url; 
} 
Verwandte Themen