スモールオフィス

BLOG
ブログ

【WordPressの多言語化】導入から設定方法までを1から丁寧に解説 | プラグインPolylangを使って多言語サイトを作る方法

グローバル対応やインバウンド需要が高まる中、企業やサービスにとって多言語サイトは「あると便利」ではなく「ないと機会損失になる」存在になるケースも多くなってきています。

「海外からアクセスがあるのに英語ページが用意できていない」

「多言語サイトの作り方がわからない」

といった課題に、日々直面している方も多いのではないでしょうか。

しかし、いざ多言語化に取り組もうとすると、

  • どうやって実装すればいいのか
  • 運用が複雑にならないか

といった技術的なハードルがあるのも確かです。

そこで今回は、実際に複数のWordPressサイトを多言語化してきた経験をもとに、導入から設定、ページの作成までを1から丁寧に解説します。

なお、この記事では、WordPressのテーマを「既存テーマではなく自作している場合」を前提にしています。

テーマ内にテンプレートファイルを追加しながら、日本語ページと英語ページを関連付けていく手順を中心に解説します。

CocoonやLightningなど既存テーマを使う場合でも考え方は同じですが、編集箇所が異なる点にご注意ください。

目次

WordPressサイトを多言語化するメリット

WordPressサイトを多言語化することで、海外ユーザーが利用しやすいサイトになり、新しい市場への拡大が期待できます。

多言語対応は「グローバルに展開している会社」という印象を与えるため信頼性の向上にもつながり、さらに言語ごとにURLが分かれることで検索エンジンから別ページとして評価され、各国でのSEO効果も期待できます。

加えて、まだ多言語化に対応していない競合が多い分野では、それ自体が差別化要因となり大きな強みになります。

多言語化プラグイン「Polylang」とは?

WordPressでサイトを多言語化する方法はいくつかありますが、その中でも代表的で多くのユーザーに利用されているのがPolylangという無料で使えるプラグインです。

引用:https://ja.wordpress.org/plugins/polylang/

Polylang

WordPressでサイトを多言語化する方法はいくつかありますが、その中でも代表的で、多くのユーザーに利用されているのが「Polylang」という無料プラグインです。

Polylangを使うと、1つのWordPressに複数の言語を追加し、ページや投稿を言語ごとに管理できます。

日本語ページと英語ページを関連付けて切り替えられるようにしたり、ナビゲーションメニューやウィジェットを言語別に表示したりと、多言語サイトに必要な基本機能が揃っています。

なお、Polylangは「翻訳を自動化するプラグイン」ではなく、「翻訳内容を管理するプラグイン」です。翻訳文は自分で行う必要があります。

なお、自動翻訳を使いたい場合は、Polylang Pro + 翻訳サービスの連携が必要です。

Polylangは初期機能が無料で利用でき、設定もシンプルなため、初めてWordPressの多言語化に取り組む場合でも導入しやすい点が大きなメリットです。

導入前の準備

Polylangを導入する前に、いくつか確認・準備しておくことで作業をスムーズに進められます。

事前に手を打っておくと、後から「ページが消えた」「構造が崩れた」といったトラブルを避けられるので必ずチェックしておきましょう。

1. バックアップを取る

まずはWordPress全体のバックアップ(データベースとファイルの両方)を行いましょう。

多言語化はサイト構造に大きな変更を加える作業です。万が一のときにすぐ復元できるようにしておくと安心です。

2. パーマリンク設定を整える

パーマリンクはPolylangを使う場合、「基本(?p=123)」では正常に動かないことがあります。

「投稿名(/%postname%/)」に設定しておくと無難です。

言語ごとに /en/about/ のようなURLを作成するため、フラットでシンプルなURL構造が望ましいです。

3. 使用テーマやプラグインの互換性確認

テーマやプラグインの中には、多言語対応が不完全なものもあります。

特にビルダー系プラグイン(Elementorなど)や独自テーマを使っている場合は、Polylangとの相性を事前に確認しておきましょう。

4. 翻訳対象の整理

サイト内のページ・投稿を一覧にして、どのコンテンツを翻訳するかを決めておくと作業がスムーズです。

たとえば「会社概要」「サービス」「お問い合わせページ」は翻訳するが、「ブログ記事は日本語のまま残す」といった線引きをしておくのがおすすめです。

Step1:Polylangを導入する

① プラグインを検索してインストール

WordPressの管理画面から 「プラグイン > 新規追加」 を開き、検索窓に「Polylang」と入力します。表示された「Polylang」をインストールして有効化しましょう。

② 使用する言語を設定する

Polylangをインストールすると、以下の言語設定画面になります。

ここで「言語を追加」ボタンから使用する言語を追加します。

今回は日本語と、英語(US)を追加します。追加が完了したら、次へをクリック。

次に画像など、メディアの説明文の翻訳を許可するかどうかの選択をします。

次にデフォルトで使用する言語を設定します。日本語を選択します。

以上で言語のセットアップは完了です。「ダッシュボードに戻る」で管理画面に戻ります。

なお、Polylangをインストールすると、WordPress「言語」というメニューが追加されます。

「セットアップ」から言語の追加を随時行うことが可能です。

③ URL構造の設定

次に 「言語 > 設定」 を開きます。

ここでは「サイトのURLにどのように言語を反映させるか」を決めることができます。

この設定にすると、

  • 日本語ページは通常の /about/
  • 英語ページは /en/about/

のように、言語ごとにURLが整理された形になります。

これで、日本語は /、英語は /en/ という形でアクセスできるようになります。

また、検索エンジンから見ても「このページは英語版だ」と認識されやすく、SEO的にも有利です。

設定は以下の通りです。

  1. 「言語はプリティーパーマリンク内のディレクトリ名から設定される」を選択
  2. 「URLにデフォルトの言語の言語情報を表示しない」にチェック
  3. 「Prettyパーマリンクで/language/を使用しない」を選択

変更を保存ボタンをクリックして完了です。

④ 既存コンテンツに言語を割り当て

Polylangを有効化すると、投稿や固定ページに「言語」という項目が追加されます。

ただし、既存のコンテンツにはまだ「このページは日本語版」という情報がついていないため、設定をする必要があります。

方法は以下の通りです。

投稿・固定ページの編集画面を開き、右側の「言語」メタボックスで「日本語」を選択する。

※言語の変更だけを行う場合は、一覧画面のクイック編集から行う方が簡単です。

これで既存のページが「日本語のコンテンツ」と認識され、今後は英語などの翻訳ページを紐づけられるようになります。

Step2:必要な日本語ページを作成する

オリジナルテーマで多言語サイトを作る想定で、実際のページの作り方を解説していきます。

ここでは、最小限の構成として以下の3種類のページを想定します。

ページ名ファイル名
トップページfront-page.php
会社概要ページpage-about.php
お知らせ一覧/詳細ページarchive-news.php / single.php

テンプレートファイルを用意する

WordPressでは、ページの内容ごとにテンプレートファイルを分けて作ります。

テーマフォルダの中に、以下のような構成を用意します。

/wp-content/themes/テーマ名/
│
├─ front-page.php      … トップページ
├─ page-about.php      … 会社概要
├─ archive-news.php    … お知らせ一覧
├─ single.php          … お知らせ詳細
├─ page.php            … 固定ページ
├─ header.php          … 共通ヘッダー
├─ footer.php          … 共通フッター
└─ functions.php       … テーマ設定

Step3:英語版ページを作成する

続いて、英語版のページを作成していきます。

ここでは、STEP2で作成した日本語ページと同じ構成を英語用に用意し、Polylangで日本語と英語のページを関連付けるところまでを行います。

ページ構成(英語版)

日本語版と対応する形で、以下の3種類の英語ページを作成します。

ページ名ファイル名
トップページ(Home)front-page-en.php
会社概要ページ(About)page-about-en.php
お知らせ一覧/詳細ページ(News)archive-news-en.php / single-en.php

テンプレートファイルを用意する

英語版のテンプレートは、日本語版のファイルをコピーし、末尾にenを加えて作成します。

テーマフォルダ内に、次のような構成を追加します。

/wp-content/themes/テーマ名/
│
├─ front-page-en.php      … 英語トップページ
├─ page-about-en.php      … 英語会社概要
├─ archive-news-en.php    … 英語お知らせ一覧
├─ single-en.php          … 英語お知らせ詳細
├─ header-en.php          … 英語ヘッダー
├─ footer-en.php          … 英語フッター

それぞれのファイルには、英語用のテキスト・リンク・画像を設定します。

また、英語版ではヘッダー・フッターも分けて呼び出します。functions.phpは日本語と共通で使うため1つだけでOKです。

Step4:英語版のページをつくる際のポイント

①英語版のheader-en.php、footer-en.php(共通テンプレート)を呼び出す

英語ページでは、ヘッダーやフッターなどの共通部分を、英語専用のテンプレートで呼び出します。

<?php get_header('en'); ?> ←enを入れる
<main class="main">
  <section class="hero">
    <h1>Welcome to our website!</h1>
    <p>We provide web design and marketing support globally.</p>
    <a class="btn" href="<?php echo esc_url( home_url('/en/about-en/') ); ?>">About us</a>
  </section>
</main>
<?php get_footer('en'); ?> ←enを入れる
  • get_header('en')header-en.phpを読み込み
  • get_footer('en')footer-en.phpを読み込み

② 英語メニューをつくる

次にナビゲーションの英語版を作成します。

1.「外観」→「メニュー」を開く

2.「新しいメニューを作成しましょう」から、「header-navigation-en」「footer-navigation-en」などの名前で新しいメニューを作成

3.メニューに表示するページを追加

4.英語版ヘッダーは「Primary Menu English」にチェック

5.メニューを保存する

同じように「日本語メニュー」も別に作っておけば、英語ページでは自動的に英語メニュー、日本語ページでは日本語メニューが表示されます。

③ 英語用のリンクを設定する

英語ページでは、リンク先のURLにも「/en/」が付きます。

たとえば「会社概要へ」のボタンは、次のように書き換えます。

<a class="btn" href="<?php echo esc_url( home_url('/en/about/') ); ?>">About us</a>

④お知らせ(投稿ページ)を英語化する

まずは「お知らせ(NEWS)」を多言語化する場合、カテゴリースラッグを日本語と英語で分けてください。

言語カテゴリー名スラッグ(重要)
日本語お知らせnews
英語Newsnews-en

スラッグ(=URL名)が同じだと、WordPress が どちらが正しい記事か判別できず、表示が壊れるためです。

日本語と英語のお知らせをそれぞれ作成する

次にお知らせの中身のページを、日本語記事と英語記事をそれぞれ作ります。

1.管理画面の「投稿」で日本語記事を作成

2.日本語のお知らせを作成後、英語版を作成します。作成後、右側の言語欄を「English」に設定。

3.公開

これで /news/ は日本語、/en/news/ は英語で表示されます。

Step5:メニューと言語切り替えを設定する(ナビゲーションの多言語対応)

ここまでで、日本語ページと英語ページができました。次は「ナビゲーション(メニュー)」を言語ごとに切り替えられるようにします。

日本語ページでは日本語メニュー、英語ページでは英語メニューが表示され、さらにボタンで言語が切り替えができる状態にします。

① メニューを設置できる場所を登録する(functions.php)

まず、WordPressに「メニューを表示できる場所(位置)」を登録します。

これはテーマに一度だけ設定しておけばOKです。

functions.php に以下を追記します。

<?php
// メニューの表示位置を登録
function my_register_menus() {
  register_nav_menus([
    'global' => 'グローバルメニュー', // ヘッダーに使うメニュー
  ]);
}
add_action('after_setup_theme', 'my_register_menus');

これで「外観 > メニュー」で「このテーマで使うメニュー位置」が選べるようになります。

② ヘッダーにメニューを表示するコードを追加(header.php)

次に、登録したメニューをサイトに表示します。

header.php に以下のコードを追加します。

<nav class="global-nav">
  <?php
    // グローバルメニューを表示
    wp_nav_menu([
      'theme_location' => 'global',
      'container' => false,
    ]);
  ?>
</nav>

これで、管理画面で登録したメニューがここに出力されます。

③ 言語切り替えボタンを表示する

次に、Polylangの機能を使って言語切り替えボタンを設置します。header.php のメニューの下に、次のコードを追加してください。

<div class="lang-switch">
  <?php
    if ( function_exists('pll_the_languages') ) {
      pll_the_languages([
        'show_flags' => 1, // 国旗を表示(1 = 表示、0 = 非表示)
        'show_names' => 1, // 言語名を表示(1 = 表示、0 = 非表示)
      ]);
    }
  ?>
</div>

これで言語を切り替えられるボタンのが表示されるようになります。

Step6:お知らせ一覧とお知らせ詳細を作成する

ここでは、WordPressに最初から入っている「投稿」機能を使って、「お知らせ一覧ページ」と「お知らせ詳細ページ」を作っていきます。

① 投稿機能を「お知らせ」として使う

WordPressでは、最初から「投稿(post)」という機能が入っています。

これを「お知らせ」として使うことで、新着情報を簡単に更新できるようになります。

② 一覧ページを作る(archive-news.php)

次に、「お知らせ一覧」を表示するテンプレートを作ります。

テーマフォルダにarchive-news.phpという名前でファイルを作成し、以下のコードを貼り付けてください。

<?php get_header(); ?>
<main class="main">
  <h1>お知らせ一覧</h1>

  <?php
    // 「お知らせ」カテゴリーの記事を3件ずつ表示
    $paged = get_query_var('paged') ? get_query_var('paged') : 1;
    $args = [
      'post_type' => 'post', // 通常の投稿を指定
      'posts_per_page' => 3, // 1ページに3件表示
      'category_name' => 'news', // カテゴリースラッグが「news」の記事のみ
      'paged' => $paged,
    ];
    $the_query = new WP_Query($args);
  ?>

  <?php if ( $the_query->have_posts() ) : ?>
    <ul class="news-list">
      <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <li>
          <a href="<?php the_permalink(); ?>">
            <span class="news-date"><?php echo esc_html(get_the_date('Y.m.d')); ?></span>
            <span class="news-title"><?php the_title(); ?></span>
          </a>
        </li>
      <?php endwhile; ?>
    </ul>

    <?php the_posts_pagination(); // ページネーション ?>
    <?php wp_reset_postdata(); ?>

  <?php else : ?>
    <p>現在、お知らせはありません。</p>
  <?php endif; ?>
</main>
<?php get_footer(); ?>

コードの説明

コード意味
'post_type' => 'post'「通常の投稿」を取得
'category_name' => 'news'カテゴリースラッグが news の記事だけを表示
have_posts() / the_post()投稿を1件ずつループして表示
the_permalink()投稿のURLを取得
the_title()投稿タイトルを表示
get_the_date()投稿日を表示
the_posts_pagination()ページ送りナビを表示

③ 詳細ページを作る(single.php)

次に、各お知らせの本文を表示する「詳細ページ」を作ります。

テーマフォルダに single.php を作り、以下のコードを記述します。

<?php get_header(); ?>
<main class="main">
  <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <article class="news-detail">
      <h1 class="news-title"><?php the_title(); ?></h1>
      <time class="news-date" datetime="<?php echo esc_attr(get_the_date('c')); ?>">
        <?php echo esc_html(get_the_date('Y.m.d')); ?>
      </time>
      <div class="news-content">
        <?php the_content(); ?>
      </div>
    </article>
  <?php endwhile; endif; ?>

  <div class="back-link">
    <a href="<?php echo esc_url(home_url('/news/')); ?>">← お知らせ一覧へ戻る</a>
  </div>
</main>
<?php get_footer(); ?>

コードの説明

関数役割
the_title()記事タイトルを表示
the_date()投稿日を表示
the_content()本文を出力
home_url('/news/')一覧ページへの戻りリンクを生成

④ 英語版(/en/news/)を作る

英語ページでも同じように「投稿」を使います。
次のように、英語用のテンプレートファイルを作っておくと便利です。

archive-news-en.php

<?php get_header('en'); ?>
<main class="main">
  <h1>News</h1>
  <?php
    $args = [
      'post_type' => 'post',
      'category_name' => 'news-en', // 英語用のカテゴリ
      'posts_per_page' => 3,
    ];
    $the_query = new WP_Query($args);
  ?>

  <?php if ( $the_query->have_posts() ) : ?>
    <ul class="news-list">
      <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <li>
          <a href="<?php the_permalink(); ?>">
            <span class="news-date"><?php echo esc_html(get_the_date('F j, Y')); ?></span>
            <span class="news-title"><?php the_title(); ?></span>
          </a>
        </li>
      <?php endwhile; ?>
    </ul>
  <?php else : ?>
    <p>No news at the moment.</p>
  <?php endif; ?>
</main>
<?php get_footer('en'); ?>

翻訳の方法について

最後に翻訳の方法についてご紹介をします。

翻訳の方法はいくつかありますが、サイトの規模・予算・更新頻度によって最適な方法が変わります。

ここでは、代表的な翻訳方法を紹介します。

① ChatGPTなどのAIツールを使って翻訳する

まずは日本語の原文を作りこみ、その内容をAIに翻訳してもらう方法です。

私は多言語サイトを作る際はこの方法を使っています。

  1. 日本語ページを完成させる
  2. コードをChatGPTにコピペする
  3. 「自然なビジネス英語に翻訳してください」と依頼
  4. 翻訳結果をサイトに反映
  5. 最後に、自分の目で読み直して調整する

AI翻訳はスピードが非常に早く、コストもかかりません。

ただし、文章の「ニュアンス」や「読み心地」は調整が必要なため、仕上げは自分で行うことをおすすめします。

私自身も、英語ページは基本的にChatGPTで翻訳 → 自分で確認・調整という流れで作っています。

② プロ翻訳者に依頼する

費用はかかりますが、一番確実でクオリティ高くできる方法です。

・企業理念
・サービス紹介
・代表メッセージ

などブランドの印象に直結する文言は、プロ翻訳者としっかりコミュニケーションをとりながら作ることで、伝えたい意図がきちんと伝わる文章にできます。

③ 翻訳サービス(DeepL / Google翻訳)を使う

DeepLのような翻訳サービスは精度が高いため、

  • まず大まかな英語文を作る
  • その後、自分で自然な文に整える

という「下訳 → 推敲」スタイルが向いています。

まず形だけ英語ページを用意したい場合に便利です。

④ Polylang Pro + 自動翻訳を使う(※有料)

Polylangの有料版では、DeepL等と連携させて自動翻訳 → ページ作成 → ページ同士の紐付けができます。

頻繁に更新が発生する大規模サイトでは効率的です。ただし、自動翻訳はそのまま使えるとは限らないため、最終的なチェックは必要です。

翻訳方法の比較

方法コスト品質向いているケース
ChatGPT / AI翻訳 + 自分で整えるほぼ無料良い(要調整)全体的に効率よく翻訳したい
プロ翻訳者に依頼高い最高ブランドイメージを重視したい
DeepL等で下訳→調整無〜低まず英語ページを形にしたい
Polylang Pro + 自動翻訳中〜高中〜良更新頻度が高い大規模サイト

まとめ

今回の記事では、WordPressで多言語サイトを構築する手順を、実際の作業フローに沿って解説しました。

グローバル化やインバウンド需要の高まりにより、多言語対応はもはや「やっておくと良い」レベルではなく、「対応していないと機会損失になる」時代です。

海外からアクセスがあるのに英語ページが用意できていない、翻訳の管理方法がわからない――

そんな悩みを解決するために、本記事では「Polylang」を使い、初めての方でも無理なく進められる形で構築方法を紹介しました。

多言語サイトは一度構築してしまえば、海外ユーザーへのアプローチが格段に広がり、信頼性やブランド力の向上にもつながります。

今回紹介した方法を参考に、ぜひ自社サイトでも多言語対応を進めてみてください。

この記事を書いた人

合同会社RAISEEEE CEO

立川 信行

群馬県前橋市を拠点に、Web制作・SEO対策・Web広告運用をワンストップで支援。 これまでに100社以上の制作・マーケティング支援実績を持ち、10年以上の営業経験を活かして、中小企業やひとり社長の「Web担当」として伴走している。 企業や店舗の強みを引き出し、成果につながるWeb戦略の設計・実行を行い、経営者のパートナーとして活動中。

CONTACT
お問い合わせ

WEBに関するご質問、ご相談を承っております

WEBサイト制作、WEB広告、SEO対策、WEB解析など、WEB戦略全般のお悩みを受け付けております。お気軽にご相談ください。