当サイトにWordPressの多言語化プラグイン「Bogo」をインストールして多言語化を進めています。
多言語化を進めるにあたり、先にインストールしているプラグインの影響で多言語化を進めるのに少し苦戦している箇所がありました。それはSEOのプラグインでも有名な「All in One SEO」プラグインです。
Bogoの設定で言語を設定していてもtitleタグやdescriptionタグが日本語のままで多言語が反映されない、ということに気がつきました。
そこで調べてみますとAll in One SEOで用意されているフィルターフックを活用してタイトルタグの書き換えが可能ということがわかりましたのでその備忘録となります。
All in One SEOのフィルターフック「aioseo_title」「aioseo_description」を使う
All in One SEOで使うことができるフィルターフックは以下のURLにて確認することができます。
- Filter Hooks – AIOSEO
https://aioseo.com/doc-categories/filter-hooks/ - aioseo_title – AIOSEO
https://aioseo.com/docs/aioseo_title/
aioseo_title フィルターフック
aioseo_titleフィルターフックにより、サイトタイトルを書き換える方法です。
function aioseo_filter_title($title) {
ob_start();
bloginfo('name');
$localizedName = ob_get_clean();
$originalName = get_bloginfo('name');
return str_replace($originalName, $localizedName, $title);
}
add_filter( 'aioseo_title', 'aioseo_filter_title', 10, 1 );
aioseo_description フィルターフック
aioseo_titleフィルターフックにより、サイト説明文を書き換える方法です。
function aioseo_filter_description($description) {
ob_start();
bloginfo('description');
$localizedDescription = ob_get_clean();
$originalDescription = get_bloginfo('description');
return str_replace($originalDescription, $localizedDescription, $description);
}
add_filter( 'aioseo_description', 'aioseo_filter_description', 10, 1 );
上記のソースコードは参考サイトに掲載されている内容を参考にさせていただきました。bloginfo関数では翻訳後の値が、get_bloginfo関数では翻訳前の値が取得されるということ、それを利用してstr_replaceにて文字列を書き換えするテクニックが紹介されており、とても参考となるソースコードです。
さらに、参考サイトではAll in One SEOと並び人気のSEOプラグイン「Yoast SEO」についても記載されていますので、Yoast SEOをお使いの方は参考サイトをご確認ください。
参考にしたサイト
- サイトのタイトルやキャッチフレーズをBogoによって多言語化する方法 | 株式会社LIG
https://liginc.co.jp/486679
コメント