2026年6月19日

2026年6月19日

WordPressで多言語サイトを構築する方法・WPMLとPolylangの設定手順

はじめに

「英語と日本語の両方でサイトを運営したい」「外国語コンテンツをSEO最適化したい」——WordPressの多言語対応には、PolylangやWPMLなどの専用プラグインを使うのが定石です。設定手順から翻訳管理まで解説します。

症状・原因

WordPressはデフォルトで単一言語向けに設計されています。多言語サイトを構築するには、URL構造(/en/サブディレクトリや?lang=enパラメータ)・翻訳コンテンツの管理・言語切替ウィジェットなどを適切に設定する必要があります。

解決手順

ステップ1:Polylangをインストールする(無料)

# Polylangをインストール
wp plugin install polylang --activate

# または管理画面から
# プラグイン → 新規追加 → "Polylang" を検索 → インストール
Polylang初期設定:
  言語 → 新しい言語を追加
    → 日本語(ja)/ English(en)を追加
  
  URL設定:
    → 言語をディレクトリに含める(推奨)
    → 例: example.com/en/about/
  
  デフォルト言語:
    → 日本語 をデフォルトに設定

ステップ2:投稿・固定ページを翻訳する

投稿の翻訳手順:
  1. 投稿 → 投稿一覧
  2. 各投稿の行に言語フラグが表示される
  3. 翻訳を追加したい言語の「+」をクリック
  4. 翻訳エディタが開く → 内容を入力して公開
  
固定ページも同様の手順で翻訳可能
// コードで現在の言語を取得(Polylang)
$current_lang = pll_current_language(); // 'ja' or 'en'

// 特定言語の投稿URLを取得
$post_id     = get_the_ID();
$en_post_id  = pll_get_post( $post_id, 'en' );
$en_url      = get_permalink( $en_post_id );

// 言語別にコンテンツを出力
if ( pll_current_language() === 'en' ) {
    echo 'Welcome to our site!';
} else {
    echo 'サイトへようこそ!';
}

ステップ3:言語切替メニューを設置する

// テーマのfunctions.phpに言語切替ウィジェットを追加
// Polylangの言語切替をナビゲーションメニューに表示
add_filter( 'wp_nav_menu_items', function( $items, $args ) {
    if ( $args->theme_location === 'primary' && function_exists( 'pll_the_languages' ) ) {
        ob_start();
        pll_the_languages( [
            'show_flags'  => 1,
            'show_names'  => 1,
            'display_names_as' => 'name',
            'hide_current' => 0,
        ] );
        $lang_switcher = ob_get_clean();
        $items .= '<li class="lang-switcher">' . $lang_switcher . '</li>';
    }
    return $items;
}, 10, 2 );
ウィジェットで設置する場合:
  外観 → ウィジェット
  → 「言語切替」ウィジェットをサイドバーに追加
  → フラグ表示・言語名表示を設定

ステップ4:WPMLを使う場合(有料・高機能)

# WPMLは公式サイトからZIPをダウンロードしてインストール
# wp plugin install wpml  ← リポジトリにないため手動インストール

# WP-CLIでインストール済みを確認
wp plugin list | grep wpml
// WPMLで現在の言語を取得
$current_lang = apply_filters( 'wpml_current_language', null );

// 特定投稿の翻訳URLを取得
$translated_url = apply_filters(
    'wpml_permalink',
    get_permalink( $post_id ),
    'en'
);

// 言語別コンテンツ切替
if ( ICL_LANGUAGE_CODE === 'en' ) {
    echo 'English content';
} else {
    echo '日本語コンテンツ';
}

ステップ5:SEO設定を多言語対応させる

// hreflangタグを出力(SEO対策)
add_action( 'wp_head', function() {
    if ( ! function_exists( 'pll_the_languages' ) ) return;

    $languages = pll_the_languages( [ 'raw' => 1 ] );
    foreach ( $languages as $lang ) {
        echo '<link rel="alternate" hreflang="'
            . esc_attr( $lang['locale'] )
            . '" href="' . esc_url( $lang['url'] ) . '">' . "\n";
    }
    // x-default(デフォルト言語)
    $default_url = pll_home_url( pll_default_language() );
    echo '<link rel="alternate" hreflang="x-default" href="'
        . esc_url( $default_url ) . '">' . "\n";
} );
# Yoast SEO + Polylang の組み合わせ(推奨)
wp plugin install wordpress-seo --activate
# Yoast SEOはPolylangと自動連携し、言語別メタタグを出力

注意事項

  • URL構造(サブディレクトリ方式 vs パラメータ方式)はサイト公開後に変更するとSEOに影響します。最初に方針を決めてから実装してください。
  • 多言語サイトではキャッシュプラグイン(W3 Total Cache・WP Super Cache)の設定を言語別キャッシュに対応させる必要があります。
  • WPMLは有料(年間$99〜)ですが、テーマ・プラグイン翻訳やWooCommerce多言語対応など高機能です。個人ブログにはPolylang(無料)で十分です。

まとめ

多言語サイト構築は「Polylangインストール→言語追加→コンテンツ翻訳→言語切替メニュー設置→hreflangでSEO対策」の流れで実現できます。無料のPolylangから始め、必要に応じてWPMLへ移行することも可能です。関連記事:WordPressのSEO設定を最適化する方法WordPressでカスタム投稿タイプを登録する方法

お気軽にご相談ください

お見積りへ お問い合わせへ