WordPressを日本語と英語など複数の言語で表示したい場合がありますが、多言語化のプラグインは、ある1つの言語で書かれたページを自動翻訳を使って翻訳しながら表示するプラグインが多く、これだと原稿は1ページ分で良いというメリットがあるものの、翻訳の質がぜんぜん良くないというデメリットがあります。そこで、今回は、言語ごとのページを自分で作って、選択された言語でページを表示するようなしくみを構築するにはどうすれば良いかを解説していきます。
準備
多言語化に必要なプラグイン
ワードプレスに以下のプラグインを導入します。
Conditional Menus | 言語毎にメニューを切り替えるプラグイン |
Content Aware Sidebars | 言語毎にサイドバーを切り替えるプラグイン |
多言語化をサポートしてくれるツール類
ワードプレス関連以外で多言語化サイトを作る際に便利なルールです。
DeepL | https://www.deepl.com/ | ドイツの自動翻訳ソフト(無料です) |
WordPressの変更点
外観 ⇨ テーマエディター でテーマエディターを開き、画面右側のファイルのリストから「functions.php」を選択し、下記のコードを functions.phpのいちばんしたに追加して保存します。
// 固定ページにもタグをつける
// function.php に記述
function add_tag_to_page() {
register_taxonomy_for_object_type('post_tag', 'page'); }
add_action('init', 'add_tag_to_page');
この変更を行うことで、固定ページにもタグを記入することができるようになります。

実際に多言語のサイトを作る
1.ページは作る言語毎に
たとえば、英語と日本語のページを作りたい場合を例に取ると、まずトップページですが、英語で書かれたものと、日本語で書かれたものを用意します。この際に、英語のページには「english」などのタグを、日本語のページには「japanese」などのタグを指定しておきます。
2.サイドバーを切り分けるための設定
WordPressの画面左側の管理者メニューから、「Content Aware」を選択してサイドバーの管理画面を開きます。新規追加を選択してサイドバーを作りたい言語の種類の数だけ作ります。
今回は「english」と「japanese」の2つを作りました。このそれぞれのサイドバーを表示させる条件として、英語のサイドバーは表示条件を「タグ」が「english」だった時、日本語のサイドバーは表示条件を「タグ」が「japanese」だったときと設定しておきます。こうすることで投稿でも固定ページでもタグによって使うサイドバーを分けることが出来ます。
3.実際のサイドバーを定義する
実際のサイドバーは、外観 ⇨ ウイジェット で編集できます。さきほど作った2つのサイドバーが表示されているはずです。
4.メニューを切り替えるしくみ
メニューを言語によって切り替えるには、いくつかの技を駆使します。まずは、どの言語のページをデフォルトで表示させるのかを決めます。URLで指定されない限り日本語のトップページをデフォルトで表示させるのであれば、日本語のメニューの中に「English」などの名称で英語の方のトップページを選択するアイテムを入れておきます。逆に英語の方のメニューには「日本語」などのように日本語のページのトップを表示するアイテムを入れておきます。そして日本語のトップページを 設定 ⇨ 表示設定 で 「ホームページ」として指定しておきます。
5.メニューを作る
WordPressの管理者メニューから 外観 ⇨ メニュー と選択してメニューの管理画面を出し、2つのメニューを作成します。1つは英語のメニュー、もう1つは日本語のメニューです。このメニューの管理画面の下の方をスクロールしてみると、「固定ページを自動追加」や「メニューの位置」といった設定項目がありますが、ここはチェックを入れないでください。
6.メニューを言語毎に切り替える設定
メニューを作成したら、画面の上の方にある「位置を管理」というタブを選択します。すると、ヘッダーメニューという項目があるので、ここに表示されている「+ Conditional Menu」というリンクをクリックします。するとメニューを選択するリストとその横に「conditions」というリンクが出ると思いますので、ここで英語のメニューを選んでおいてから「conditions」をクリックし、さらに「Pages」というタブから英語のメニューを表示したいページにすべてチェックを入れます。日本語のメニューも同様に設定して保存ボタンを押しておきます。設定が終わったら、「位置を管理」の画面の下にある保存ボタンを忘れずに押下しておいてください。これをしないと設定が反映されません。
注意点
この原稿を執筆している時点では、サイドバーの設定と違い、メニューのほうの切り替え設定では、固定ページに関しては、タグによる切り替えができませんでした。面倒ですがページを1つ1つ指定していくしか無いようです。ですので、ページを新規に作るたびにここの設定も変更してください。
動作確認
サイトを表示させ、メニューが表示されていることを確認してください、さらに、言語を選択したときには目当ての言語でのページが表示されて、サイドバーとマニューが意図したとおりに表示されていることを確認してください。
英語のメニュー

日本語のメニュー

さいごに
今回は、Wordpressでマルチリンガルサイトを構築する方法を解説しました。上記の方法で複数の言語を表示できるサイトが構築できると思います。DeepLの翻訳品質は驚くほど良いので、これを使って複数言語に対応したサイトの構築も比較的ラクにできるのではないでしょうか。
同一カテゴリの記事一覧
- 【テクニカル】WordPressを多言語化する
- 【テクニカル】CentOs8 インストール後にすべきことメモ
- 【テクニカル】一番簡単なCentOS PHP7.3から7.4への移行方法
- 【テクニカル】パソコンへのLinuxの導入
- 【テクニカル】Open Graph 手書きのウエブサイトをSNSでシェアできるよう…
- 【テクニカル】C# NotifyIconの実装
- 【テクニカル】一番わかりやすいBracketsの導入とトラブルシューティング
- 【テクニカル】無料SSL Let's EncryptでWordpressサイトをSSL化する
- 【テクニカル,未分類】【Windows10】ホテルのWiFi接続時に「インターネット接続…
- 【テクニカル】Let's Encryptのトラブルシューティング
- 【テクニカル】C# で Task を使う
- 【テクニカル】MacBookProにBootcampでWindows10を入れる際のポイント
- 【テクニカル】PHPMailer導入とトラブル対策
- 【テクニカル】PHPMailerのログをSYSLOGに出力
- 【テクニカル】Visual Studio 2017で使うSSHの秘密鍵をputtygenで作成す…
- 【テクニカル】Wordpressの投稿一覧で要らない項目を削除する方法
- 【テクニカル】Google SEO の要点 - Better Google SEO
- 【テクニカル】wordpressを始める前に絶対すべき準備 - Things you need …
- 【テクニカル】Wordpress URL設定間違い・サイト移動のトラブル対応 - Ho…
- 【テクニカル】VisualStudio2013セットアッププロジェクトを戻す! - Vis…
- 【テクニカル】C# でWindowsサービスの「説明」の文を取得する方法 - C# …
- 【テクニカル】動画配信に最低限必要なモノ(動画配信環境)
- 【テクニカル】動画配信のトラブル対処(ブーンというノイズが乗る)
- 【テクニカル】client denied by server configuration: