2016-04-05 20 views
0

WPMLは翻訳されたコンテンツに関連する多くの関連情報を編集できるため、多言語サイトを管理するための優れたプラグインです。ただし、このプラグインはhreflangタグを追加しますが、hreflang = "x-default"アノテーションはサポートされていません。hreflang = '' x-default ''をWPML 3.3.6プラグインに追加するには?

このx-defaultタグをWPMLサイトに追加し、希望の言語バージョンのURLをポイントする方法を知りたいと思います。

WPMLフォーラムにはいくつかのコード例がありますが、このプラグインの古いバージョンを対象としています。それらのすべては、現在、以下のコードで構成されていることを、head_langs機能を編集するポイント:事前に

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

感謝を!

答えて

-1

私は同じ問題を抱えていました。コアWPMLファイルを上書きしたくないし、WPMLフィルタを使ったソリューションも見つけられなかったので、WordPressヘッダーにx-default hreflangを書きました。

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

優先度はかなり高いので、代替のhreflangリンクは他のものの下に出力されますが、私が知る限り、それは本当に必要ではありません。

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; 
} 
関連する問題