THE THORのタイトルとキャッチフレーズをBogoで多言語化する方法

このブログはWordPressのテーマの「THE THOR」を使っています。英語版の記事も作っていて、WordPressで多言語対応するためのプラグイン「Bogo」を使っています。

Bogoには言語によってテキストを置き換える機能がありますが、サイトのタイトルとキャッチフレーズだけは常に日本語用のものが出力されてしまいます。そこで、子テーマのfunctions.phpを編集して、サイトとのタイトルとキャッチフレーズも多言語化されるようにしました。

この記事ではそのやり方を解説します。

この記事で解説している方法は、子テーマのファイル編集を伴います。必ず、編集するファイルのバックアップを取ってから行ってください。
スポンサーリンク

サイトのタイトルを生成する処理

WordPressでサイトのタイトルを生成する処理は、pre_get_document_titleのフック関数で実装されています。親テーマの中を検索してみると、the-thor/inc/seo/title.phpファイルの中でfit_title_document()関数をフック関数に設定しているコードが見つかりました。

このフック関数を置き換えます。

子テーマでフック関数を置き換える

親テーマのファイルを編集してしまうと、テーマがアップデートしたときや調子が悪いときに戻すのが難しくなってしまうので、子テーマで親テーマのフック関数を置き換えます。

the-thor-child/functions.phpファイルを編集します。

タイトルタグに出力する文字列の生成処理

Bogoで翻訳した後のタイトルとキャッチフレーズ、翻訳前のタイトルとキャッチフレーズを取得して、親テーマが生成したタイトルタグ文字列の中の文字列を置き換えて出力する処理を書きます。

次のコードをthe-thor-child/functions.phpに書きます。

function localize_title() {
	ob_start();
	bloginfo('name');
	$localizedName = ob_get_clean();
	
	ob_start();
	bloginfo('description');
	$localizedDescription = ob_get_clean();
	
	$originalName = get_bloginfo('name');
	$originalDescription = get_bloginfo('description');
	
	$title = fit_title_document();
	$title = str_replace($originalName, $localizedName, $title);
	$title = str_replace($originalDescription, $localizedDescription, $title);
	
	return $title;
}

次のような順序で処理しています。

  1. 翻訳されたタイトルを取得する
  2. 翻訳されたキャッチフレーズを取得する
  3. 翻訳前のタイトルを取得する
  4. 翻訳前のタイトルを取得する
  5. タイトルタグに出力する文字列を生成する
  6. 生成された文字列の中の、タイトルを翻訳後のタイトルに置き換える
  7. 生成された文字列の中の、キャッチフレーズを翻訳後のキャッチフレーズに置き換える
  8. 新しい文字列を返す

この処理は次の記事を参考に作成しました。

株式会社LIG

LIGのフロントエンドエンジニア・つっちーが、WordPressの多言語化プラグイン「Bogo」の機能を使った、サイトの…

フック関数を置き換える

作成したlocalize_title()関数が実行されるようにフック関数を置き換えます。

次のコードをthe-thor-child/functions.phpファイルに追加します。

function set_after_parent_theme() {
	remove_action('pre_get_document_title', 'fit_title_document');
	add_filter('pre_get_document_title', 'localize_title');
}
add_action('after_setup_theme', 'set_after_parent_theme', 20);

これで作成したフック関数が実行されるようになり、日本語版の記事のときは日本語のタイトル、英語版の記事のときは英語版のタイトルが使われるようになります。トップページのときはキャッチフレーズの文字列も言語によって変わります。

THE THORとBogoについて

「THE THOR」はWordPressの有料テーマです。HTML5+CSS3による最新のコーディングやAMPなどにも対応した高機能なテーマです。

詳しくは公式サイトをご覧ください。

集客・収益にこだわったWordPressテーマ「THE THOR(ザ・トール)」

「Bogo」は多言語対応するためのプラグインです。自動翻訳ではなく、各言語別の記事を自分で作ります。単純に翻訳しただけの記事を作ってしまうと、Googleは別言語のページではなく、重複コンテンツとみなしてしまうそうです。そのため、metaタグで言語別のページをリンクさせます。そういった作業を行ってくれるプラグインです。

詳しくはこちらです。

Bogo – WordPress プラグイン | WordPress.org 日本語

スポンサーリンク
最新情報をチェックしよう!
>現役のプログラマーが書くプログラミング情報

現役のプログラマーが書くプログラミング情報

日々の開発の中での学びや分かったこと、調べたことなどを書いていくブログです。

CTR IMG