他多言語で表示するページが簡単に作れるようになるプラグイン【Polylang】。

以前に私が管理する別サイトで書いた「【WordPress】プラグインなしで「英語」版のサイトを作る -制作備忘録-」の記事のようにすれば自力で別言語サイトを作成できないこともないのですが、このプラグインを使えば簡単簡単!ということで早速導入してみたら...

見事にやらかしました(笑)-テストサイトでよかった...。

というのは、プラグインを有効化して最初に表示されるウィザードでのこと。

最初に言語を追加してくれと言われたので、もう初期言語は設定されている(日本語)から、英語を追加すればいいと勘違いし、英語を追加-これが間違いの始まり..(ここで本当は日本語を追加しないといけない

【Polylang】プラグインの初期設定で誤った言語を指定してしまったときの対処(元の言語に戻す方法)|Personal WP Customization Notes (PWCN)

そして下図のような2つ先の画面でちゃんと紐づいてないものをすべて英語と紐づけるぞ!と言われているのに何も考えずに、強気に?「次へ」を選択..

【Polylang】プラグインの初期設定で誤った言語を指定してしまったときの対処(元の言語に戻す方法)|Personal WP Customization Notes (PWCN)

見事に投稿・固定ページ・タグ・カテゴリー・メディアが「英語」として設定されてしまいました(泣)。

これを日本語に戻すには、1つ1つ直すしかない?ひええ~~~っと汗が出てしまいましたが、本ページの方法で一括して元にもどすことができましたので、備忘録を兼ねて公開しておきます。

同じことして困った方(いないかな?)の一助となれば幸いです。

【Polylang】プラグインの初期言語を一括で元に戻す方法

これについては、作者サイトの「Configure the languages」に書かれているのですが、いくつも方法が書かれていて混乱すると思うので、ひとまず今回私がやらかしたように初期設定で言語を英語にしてしまい、すべてのコンテンツを英語に紐づけてしまったものを、全部一括で日本語に設定しなおす方法を紹介します。

【Polylang】は日本語化されていますので、以下日本語表記されていることを前提に紹介します

手順はバージョン3.3.1の場合です。バージョンによっては手順が異なるかも知れません

日本語を追加する

管理画面の「言語」メニューから「言語」を選択します

以下のような画面になるので、日本語を追加します。

【Polylang】プラグインの初期設定で誤った言語を指定してしまったときの対処(元の言語に戻す方法)|Personal WP Customization Notes (PWCN)

追加できると、下図のように、一覧に「英語」と「日本語」が表示されます

【Polylang】プラグインの初期設定で誤った言語を指定してしまったときの対処(元の言語に戻す方法)|Personal WP Customization Notes (PWCN)

言語を日本語に戻す(誤って設定した言語を削除する)

上図では、英語(English)が基本言語として設定されていることを示す★マークがついていて、すべての投稿が英語に紐づいていることが「投稿」欄から分かります。

これをすべて日本語に変えたいので、「English」の部分をマウスオーバーすると出てくる「削除」をクリックします(つまり英語を削除します)。

下図のように、「言語が設定されていない投稿、ページ、カテゴリー、またはタグがあります。 これらすべてをデフォルトの言語に設定できます。」と表示され、一部がリンクになっていますので、リンクをクリックします。

【Polylang】プラグインの初期設定で誤った言語を指定してしまったときの対処(元の言語に戻す方法)|Personal WP Customization Notes (PWCN)

これでめでたく、すべて(投稿・固定ページ・画像・タグ・カテゴリーなど)のデフォルト言語が日本語に戻ります(日本語の国旗に変わります)!!

戻ったら、再び言語設定で英語を追加すれば、基本となる言語は日本語で、各編集画面から英語が追加できるという思った通りの動作になります。

めでたしめでたし...。

ちなみに、この言語の違いは何?ということですが、ざっくりいうと、以下の2つの役割を持っています。

  • 「このページは〇〇という言語のページですよ!」というのを、インターネット上に知らせる(HTMLコード上で表記する)
  • 「このページは〇〇という基本言語ページに対する△△という言語の補助ページですよ」というのを知らせる

つまりこれが間違っていると、日本語で書いているのに、検索エンジンなどの認識は英語となり、英語ページのサブページに日本語があるよということになってしまうので、きちんと直してから他の言語のページを作成しましょう。

補足として、クイック編集などで、1つ1つの言語を日本語に修正して、言語設定ページで★マークの列を日本語のところでクリックすると、主ページは日本語、各ページも日本語としてきちんと認識されるようになりますので、一括変更が怖いという方は手動で行ってもよいかも知れません(かなり面倒です..)。

手動で変更する場合、投稿や固定ページでクイック編集や一括編集すると、「最終更新日」が作業した日に変わってしまいますので、更新日を大事にする方にはおすすめしません

【Polylang】プラグインの機能など

ついでに【Polylang】プラグインの特徴や機能、仕組みについて触れておきます。

【Polylang】プラグインのインストール・初期設定・使い方

【Polylang】プラグインは以下からダウンロードしてインストールするか、プラグインの追加画面から、Polylangで検索すればすぐに見つかります。

インストールして有効化すると、すぐにセットアップウィザードが起動して、初期設定が行えるようになっています。

くれぐれも本ページのように初期言語を間違えないようにしてくださいね(笑)。

初期設定が終わると、投稿編集画面に以下のような選択肢が追加されます(基本日本語で追加が英語の場合)。

【Polylang】プラグインの初期設定で誤った言語を指定してしまったときの対処(元の言語に戻す方法)|Personal WP Customization Notes (PWCN)

「言語」というところには、現在編集している言語のページ(画像では日本語)、そして、「翻訳」というところには、追加できる(言語設定で追加している)言語が表示されます。

国旗マークの右にあるマークをクリックすると、その言語のページが編集できます。

言語ごとのページは一覧画面(投稿の場合は投稿一覧画面)にどちらの言語のページも表示され、おのおの編集できるようになっています。

自動で別言語のページを作成してくれるわけではないので、既にある日本語ページを基に英語ページを作る場合は、日本語ページのすべてのブロックをコピーして英語ページへ貼り付けた後、自身で英語にしていく必要があります。

厳密には、メディアで画像なども英語版を作り、入れ替えると完全な英語ページになりますが、メディア一覧も複製された画像だらけになりますから、そこまでする必要はなく、あくまでもメインページの多言語版と位置付けておいた方がよいかも知れません。

【Polylang】プラグインが行っていること

【Polylang】プラグインは、英語と日本語のページの作成・管理を行うだけでなく、以下の機能を持ちます。

※日本語と英語ページが存在する場合の動作です

  • HTMLソースのヘッダー内にhflangとして日本語と英語のページのURLを出力します
  • HTMLソースのヘッダーに基本言語(この場合は日本語ページ)のURLをcanonical URLとして出力します

従って、Canonical URLを出力するようなプラグインやテーマと併用する場合には2重出力になったりすることがありますので注意が必要でしょう。

【Polylang】プラグインの言語スイッチャーの実装方法

【Polylang】プラグインの無料版では、言語の切り替えを行うための機能は実装されていません。

従って、githubのページ「Polylang shortcode for lang switcher」に掲載されているコードをテーマのfunctions.phpへ追加して、ショートコードで出力するしかないようです。

有料版(プロ版)では、言語スイッチ用のブロックが追加され、使用できるようです

ただ、テストした限りでは、ショートコードをクラシックテーマのウィジェットやテンプレートへ追加、またはブロックテーマの各投稿内へ追加した場合には機能しますが、ブロックテーマのテンプレート内へ挿入しても機能しませんでした

これは推察ですが、ブロックテーマのテンプレートでは、日本語と英語の投稿IDが正確に認識できないからだと思われます(コードを知識の限りでごにょごにょしてみましたがダメでした..)。

従って、ブロックテーマで言語切り替えボタンの設置をしたい場合には、面倒でも個別の投稿編集画面の本文内にショートコードを1つ1つ挿入していくしかなさそうです。

ただ、実際にサイトを運営する観点からすると、恐らく検索経由で該当する言語のページにたどり着いた人が他の言語ページをわざわざ見る..ということはないと思われるので、無理に言語スイッチャーを設ける必要もないのかな?というのが個人の意見です。

言語スイッチャー用の関数についてはPolylang公式ページの「関数リファレンス」をご覧ください。