WordPress プラグイン Polylang の使い方を紹介

WordPress の多言語切り替えプラグイン Polylang の使い方を紹介します。
例えば、多言語サイトを制作する時に便利な方法です。

  1. 言語切替の条件分岐
  2. 言語を切り替える言語スイッチャーを実装する方法
  3. 共通したページスラッグを使用する方法
  4. 注意事項

言語切替の条件分岐

言語別に表示を切り替えるには get_locale を使って、現在のロケール情報を取得して条件分岐を行います。
例えば、日本語とそれ以外の言語で表示内容を分けるには、次のコードをテンプレートに追加します。

<?php if(get_locale() == 'ja'): ?>
日本語
<?php else: ?>
他言語
<?php endif; ?>

ページ冒頭の lang 設定を言語別に切り替える際には次のコードを追加します。

<?php if(get_locale() == 'ja'): ?>
<html lang="ja">
<?php else: ?>
<html lang="en">
<?php endif; ?>

言語を切り替える言語スイッチャーを実装する方法

Wiget を使わずに言語スイッチャーを実装するには、プラグイン独自の関数を使用します。
例えば、言語に登録した名称を表示するスイッチャーを表示するには、次のコードを追加します。

<ul>
<?php pll_the_languages(); ?>
</ul>

次のように表示されます。

<ul>
<li class="lang-item lang-item-xx lang-item-ja lang-item-first current-lang"><a lang="ja" hreflang="ja" href="https://.example.com/">JP</a></li>
<li class="lang-item lang-item-xx lang-item-en"><a lang="en-US" hreflang="en-US" href="https://example.com/en/">EN</a></li>
</ul>

例えば、オプションを指定すると次のようにカスタマイズが可能です。

国旗を表示する。

<ul>
<?php pll_the_languages(array('show_flags'=>1,'show_names'=>0)); ?>
</ul>

言語リストをドロップダウンリストで表示する

<?php pll_the_languages(array('dropdown'=>1));  ?>

指定できるオプションは以下のとおりです。

dropdown
0に設定するとリストを表示し、1に設定するとドロップダウンリストを表示します。(デフォルト:0)
show_names
1に設定されている場合、言語名を表示します。(デフォルト:1)
display_names_as
‘name’または ‘slug’。(デフォルト: ‘name’)
show_flags
1に設定するとフラグが表示されます。(デフォルト:0)
hide_if_empty
1に設定した場合、投稿(またはページ)のない言語を隠します。(デフォルト:1)
force_home
1に設定するとホームページへのリンクを強制します。(デフォルト:0)
echo
1に設定されていればエコーし、0に設定されていれば文字列を返します。(デフォルト:1)
hide_if_no_translation
1に設定されている場合、翻訳が存在しない場合は言語を非表示にします。(デフォルト:0)
hide_current
1に設定すると現在の言語を隠します。(デフォルト:0)
post_id
設定されている場合、post_idによって定義された投稿(またはページ)の翻訳へのリンクを表示します。(デフォルト:null)
raw
これを使ってあなた自身のカスタム言語スイッチャーを作成します。(デフォルト:0)

共通したページスラッグを使用する方法

言語を分けた場合に、日本語ページと他言語ページで共通したページスラッグを使用するには、このプラグインのPRO版を購入する必要があります。

注意事項

このプラグインを使用する上で注意したいのは pjax などを使用した場合です。
言語切り替えボタンが、pjaxの更新範囲内にないと、意図したページへのリンクが作成されないのでご注意が必要です。

まとめ

WordPress プラグイン Polylang の使い方を紹介しました。