2026年5月20日
2026年5月20日
Polylangの設定方法|無料で日本語・英語の多言語サイトを作る手順
結論:Polylangとは、設定の流れ
Polylangは、WordPressで多言語サイトを作るためのプラグインです(作者はChouby)。wordpress.orgの説明では、WordPress標準の仕組み(タクソノミー)だけを使い、性能を保ったまま多言語化できるとされています。追加できる言語の数に上限はありません。
設定は次の流れで進めます。
- プラグインをインストールして有効化する
- 言語を追加する
- URLの形式を設定する
- 言語スイッチャー(言語の切り替え)を置く
- テーマの文字列を翻訳する
この記事は、2026年10月16日時点の公式情報にもとづいています。投稿や固定ページを翻訳する操作そのものは、この記事では扱いません。Polylangの公式ドキュメント(Getting started)を参照してください。
無料版とPro版の違い
| 無料版(Polylang) | Pro版(有料) | |
|---|---|---|
| 翻訳できるもの | 投稿、固定ページ、メディア、カテゴリー、タグ、カスタム投稿タイプ、カスタムタクソノミー、RSSフィード | 無料版と同じ |
| 言語の指定方法 | URLの言語コード、または言語ごとのサブドメイン・ドメイン | 無料版と同じ |
| 言語スイッチャー | ブロック、ウィジェット、ナビゲーションメニュー項目として配置 | 無料版と同じ |
| URLスラッグの翻訳 | なし | あり(カテゴリー、著者ベース、カスタム投稿タイプなど) |
| 言語間でのスラッグの共有 | なし | あり |
| 自動翻訳 | なし | あり(DeepL。自分のAPIキーが必要) |
| 翻訳の書き出し・読み込み | なし | あり(XLIFF形式) |
| 翻訳間での内容の複製・同期 | なし | あり |
| サポート | コミュニティフォーラム | 優先サポート |
※「なし」は、公式がPro版の機能として挙げていて、無料版の機能一覧には載っていないものです。
- Pro版は、年€99(税抜)です(polylang.pro、2026年10月16日確認)。1年間の更新とプレミアムサポートが付きます。複数サイト向けのライセンスもありますが、サイト数はページに書かれていません
- WooCommerceの翻訳は、Pro版ではなく、別売りのアドオン「Polylang for WooCommerce」で対応します
インストールして有効化する
管理画面の「プラグイン」→「新規追加」で「Polylang」を検索し、インストールして有効化します。WP-CLIを使う場合は、次のコマンドです。
wp plugin install polylang --activate
有効インストール数は90万以上です(wordpress.org、2026年10月16日確認)。
言語を追加する
管理画面の「言語」メニューから、「言語を追加」で使う言語を登録します。
- 言語コードは、ISO 639-1に準拠した2文字のコードが望ましいとされています(日本語なら
ja、英語ならen) - 登録した言語のうち1つを、デフォルトの言語に設定します
URLの設定
言語ごとのURLの形式は、管理画面の「言語」→「設定」にある「URL の修正」で選びます。次の指定方法があります。
- 言語はプリティーパーマリンク内のディレクトリ名から設定される(例:
example.com/en/のような形式) - 言語はプリティーパーマリンク内のサブドメイン名から設定される
- 言語ごとに別のドメインを使う
ほかに、次の項目があります。
| 項目 | 内容 |
|---|---|
| URL にデフォルトの言語の言語情報を表示しない | デフォルト言語のURLから、言語コードを外します |
| ブラウザーの言語の検出 | フロントページで、訪問者のブラウザーの言語を検出します |
| フロントページでは、URL にページ名や ID ではなく言語コードを使用する | トップページのURLを、言語コードにします |
URLの形式は、一度公開したあとに変えると、検索結果やブックマークのURLが変わります。公開前に決めてください。
言語スイッチャーを置く
言語スイッチャーは、ブロック、ウィジェット、ナビゲーションメニュー項目として配置できます(wordpress.org)。ブロックテーマでクラシックメニューやクラシックウィジェットを使う場合は、公式ページで、Site Editor Classic Features というプラグインの併用が案内されています。
テーマのテンプレートに直接書く場合は、pll_the_languages() を使います。ただし、Polylang 3.9 以降では、この関数の旧来の引数の指定が非推奨になる場合があります(Polylangのソースコードより)。使っているバージョンの公式ドキュメントで、引数を確認してから使ってください。
テーマの文字列を翻訳する
投稿や固定ページ以外の、テーマに書かれた文字列は、「言語」メニューの「文字列翻訳」で翻訳します。テーマやプラグインから、翻訳したい文字列を登録するには、pll_register_string() を使います。
add_action( 'init', function () {
if ( ! function_exists( 'pll_register_string' ) ) {
return;
}
// 第1引数: 一意の名前、第2引数: 文字列、第3引数: グループ名
pll_register_string( 'hero_title', 'メインタイトル', 'mytheme' );
} );
登録した文字列を表示するときは、次の関数を使います(いずれもPolylangのソースコードの定義より)。
| 関数 | 動作 |
|---|---|
pll__( $string ) |
翻訳した文字列を返す |
pll_esc_html__( $string ) |
翻訳した文字列を、HTMLエスケープして返す |
pll_e( $string ) |
翻訳した文字列をそのまま出力する(エスケープされません) |
出力する文字列に、外部から入る値が混ざる場合は、エスケープされる関数を使ってください。
翻訳した投稿のURLを取得する
pll_get_post() は、翻訳先の投稿IDを返す関数です(URLではありません)。翻訳が無いときは 0 を返します。URLが必要な場合は、get_permalink() と組み合わせます。
$en_id = pll_get_post( get_the_ID(), 'en' );
if ( $en_id ) {
echo esc_url( get_permalink( $en_id ) );
}
URLスラッグの扱い
URLの末尾(スラッグ)に関して、無料版とPro版には次の違いがあります(polylang.pro、wordpress.org)。
- 無料版: URLスラッグを翻訳する機能は、機能一覧に含まれていません
- Pro版: カテゴリー、著者ベース、カスタム投稿タイプなどのURLスラッグの翻訳と、言語間でのスラッグの共有ができます
言語ごとにURLの語を変えたい場合は、Pro版が必要です。
うまく動かないとき
- 公式のサポート窓口は、Getting startedなどのドキュメント、FAQと開発者向けの資料、コミュニティのサポートフォーラムです。Pro版とWooCommerce用アドオンの利用者は、ヘルプデスクの優先サポートを使えます
- WooCommerceと連携したい場合は、別売りの「Polylang for WooCommerce」が必要です
- プラグインのエラーや不具合については、Polylangのエラーを解決する方法も参考にしてください
- WPMLとの違いや、プラグイン選びは、WordPressで多言語サイトを構築する方法・WPMLとPolylangの設定手順で解説しています
よくある質問
無料で使えますか。
基本の翻訳機能は、無料版で使えます。URLスラッグの翻訳、DeepLによる自動翻訳などは、Pro版(年€99、税抜)の機能です。
WooCommerceのサイトでも使えますか。
使えますが、別売りのアドオン「Polylang for WooCommerce」が必要です。
自動翻訳はできますか。
Pro版でDeepLによる機械翻訳を使えます。自分のDeepLのAPIキーが必要です。