44歳で退職から会社設立?!事の顛末を綴るブログ

Multisite Language Switcherでgoogleのhreflangを満足させてみた(後編)

2015.03.20

Multisite Language Switcherでgoogleのhreflangを満足させてみた(後編) はコメントを受け付けていません。

雑記帳アイキャッチ画像

この記事を読むのに必要な時間は約 6 分です。

前編からの続きです。問題点は以下の4つ。

問題点1:全てのURLの末尾に”/”が無い。これはgoogle的にダメそうです。
問題点2:x-defaultが表示されていない。そりゃそうです。このプラグインにそんな設定は無いんですから。jaと表示されているのはプラグインでブログ言語を日本語に設定しているからです。
問題点3:en-gbじゃなくen_GBと表示されている。google的に言語表記は決まっているようで。これじゃダメみたいです。大文字と小文字は違ってもいいみたい。
問題点4:enだけで良いのにen_GBと表示されている。GBはイギリス、USはアメリカなどを示すのですが、wordpressには単純にenという言語が無いのです。今回は地域指定したくない。

では順番にいきます。先ずは問題点1から。
対象ファイルはwp-content->plugins->multisite-language-switcher->MultisiteLanguageSwitcher.phpの263行目
‘<link rel=”alternate” hreflang=”%s” href=”%s” />’,

‘<link rel=”alternate” hreflang=”%s” href=”%s/” />’,
とする。

続いて問題点2。

このプラグインは言語ファイルのファイル名をタグとして出力しているようです。ならば、言語ファイルをつくります。

先ずは、wp-content->languagesにあるja.poとja.moをダウンロードして、それぞれx-default.poとx-default.moと名前を変えて同じ場所にアップロード。

中身は当然に日本語のままです。このままプラグインのブログ言語に表示されたx-を選択しても、タグにもx-としか表示されません。

なので、以下のコードを各子テーマのfunction.phpに追記

function my_msls_head_hreflang( $language ) {
    return $language;
}
add_filter( 'msls_head_hreflang', 'my_msls_head_hreflang' );

これでタグにはx-defaultと出力されるようになりました。

続いて問題点3。

上のコードを以下のように修正します。するとアンダースコアがハイフンになります。

function my_msls_head_hreflang( $language ) {
	return str_replace( '_', '-', $language );
}
add_filter( 'msls_head_hreflang', 'my_msls_head_hreflang' );

最後に問題点4。

そもそもwp-content->languagesには単純なenが無い。そこでen_GB.poとen_GB.moをダウンロードして、それぞれそれぞれen.poとen.mo名前を変えて同じ場所にアップロード。プラグインの設定画面でEnglishを選択。2つ表示されていれば、そのページのソースを見ればどちらを適用か分かります。

新たな問題点(問題点5)

en_GBもen.poも両方ともEnglishと表示され区別がつかない。x-defaultなのでx-としか表示されないのは気に入らない。

このため、以下のコードを追記したが、効かなかった。条件分岐が分からなかったのでen_GBだけでテストしたが、無駄骨。誰かさんにバカにされようが素人にはここまで。

function my_msls_options_get_available_languages( $languages ) {
if ( ! isset( $languages[en_GB] ) ) {
$languages[en_GB] = British English;
}
return $languages;
}
add_filter( msls_options_get_available_languages, my_msls_options_get_available_languages );

 

この辺のことは以下のサイトに書いてあります。
Multisite Language Switcher

ということで、中途半端な感じがスゴイけど、当初の目的は達成されました。ただ、ウィジットで言語スイッチを表示するなどすると、不具合出るかも。そんな時は、このプラグインでのhreflangの出力を諦めて、sitemapで設定する方が簡単そうです。

headにいろいろ書き込めるAdd Meta Tagsみたいなプラグインを試すかなぁ。マルチサイト対応してないなぁ。一番はheader.phpの修正かなぁ。そもそも.comドメインだからウェブマスターツールでの設定だけでいいのかなぁ。

だんだん分からなくなって来たので、もうおしまいにします。

関連記事

コメントは利用できません。