2026年5月20日
2026年5月20日
WPMLの設定方法と多言語サイト構築ガイド
はじめに
WPML(WordPress Multilingual Plugin)はWordPressで最も広く使われる多言語プラグインです。投稿・固定ページ・カスタム投稿タイプ・メニュー・ウィジェットを複数言語で管理でき、WooCommerceの多言語化にも対応しています。
症状・原因
- WordPressサイトを日本語・英語など複数言語で運営したい
- 言語ごとに異なるURL構造(/en/・/ja/)を設定したい
- 翻訳コンテンツを効率的に管理したい
- WooCommerceを多言語対応させたい
解決手順
ステップ1:WPMLをインストールする
WPMLは公式ディレクトリにないため、wpml.orgから購入してインストール:
プラグイン → 新規追加 → プラグインのアップロード
→ wpml-multilingual-cms.zip をアップロード → 有効化
→ ライセンスキーを入力 → 認証
必要なアドオン:
- WPML String Translation(文字列翻訳)
- WPML Translation Management(翻訳管理)
- WPML Media Translation(メディア翻訳)
ステップ2:言語を設定する
WPML → 言語:
→ サイトのデフォルト言語: 日本語
→「言語を追加」→ English(英語)を追加
→ 言語切り替えボタンの表示: フラグ + 言語名
→「設定を保存」
URL構造(言語ディレクトリ):
→ 言語コードをURLに追加: /en/page-slug/(推奨)
→ 異なるドメイン: example.com / en.example.com
→ 言語パラメーター: ?lang=en(非推奨)
ステップ3:投稿を翻訳する
投稿一覧 → 翻訳列の「+」アイコンをクリック
→ 翻訳エディターが開く
→ 左側: 元言語(日本語)
→ 右側: 翻訳先(英語)を入力
→「翻訳を完了」
または WPML Translation Management で:
→ 翻訳ジョブとして送信 → 外部翻訳者に依頼
→ XLIFF形式でエクスポート/インポート
ステップ4:文字列翻訳を設定する
テーマ・プラグインの文字列(ナビゲーション・フッターテキストなど)を翻訳:
WPML → String Translation:
→ スキャン: 翻訳可能な文字列を検出
→ 各文字列の「+翻訳を追加」で翻訳入力
→「翻訳を保存」
// テーマでWPML対応の文字列を登録
// functions.php
function mytheme_register_strings() {
if (function_exists('icl_register_string')) {
icl_register_string('mytheme', 'hero_title', 'メインタイトルを入力');
icl_register_string('mytheme', 'cta_button', 'お問い合わせ');
}
}
add_action('after_setup_theme', 'mytheme_register_strings');
// テンプレートで翻訳済み文字列を出力
echo apply_filters('wpml_translate_single_string', 'メインタイトルを入力', 'mytheme', 'hero_title');
ステップ5:WP-CLIで言語設定を確認する
# 有効な言語一覧を確認
wp option get icl_sitepress_settings --format=json | \
python3 -c "import sys,json; s=json.load(sys.stdin); [print(k) for k in s.get('active_languages',{}).keys()]"
# 翻訳済みの投稿を確認
wp post list --meta_key=wpml_language --meta_value=en --format=table
# WPML関連のオプションを確認
wp option list --search="icl_*" --format=table
ステップ6:言語切り替えメニューを追加する
// functions.php — ヘッダーに言語スイッチャーを表示
function mytheme_language_switcher(): void {
if (!function_exists('icl_get_languages')) {
return;
}
$languages = icl_get_languages('skip_missing=0&orderby=code');
if (empty($languages)) {
return;
}
echo '<ul class="lang-switcher">';
foreach ($languages as $lang) {
$active = $lang['active'] ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>',
$active,
esc_url($lang['url']),
esc_html($lang['native_name'])
);
}
echo '</ul>';
}
注意事項
- WPMLは有料プラグインです(年間$99〜)。無料代替はPolylangを検討してください
- 言語追加後にパーマリンクを再保存してください(設定 → パーマリンク → 保存)
- WooCommerce多言語化にはWPML WooCommerceアドオンが別途必要です
まとめ
WPMLはデフォルト言語を設定後、言語を追加して各投稿の翻訳を作成します。icl_register_string() でテーマ文字列も翻訳対象に登録でき、URLは言語ディレクトリ形式(/en/)が最もSEOに有利です。