WPML、Weglott、Polyglot などの優れた多言語 Plugin を使っていて、言語設定で URL に言語コード付きのカスタムフォルダ (例: yourdomain.com/en/) を使うように設定していますか?
その場合、Staging サイトのページを開くとエラー 404 になる問題に遭遇するかもしれません。これは Staging サイトのパーマリンクが無効化されている場合に発生することがあります。
Contents
オプション 1: Staging サイトをサブドメインに作成する
WordPress サイトをサブドメインにクローンできます。こうすれば、URL 構造が本番サイトの URL 構造をそのまま反映するため、リンク構造に関する問題が発生しなくなります。
オプション 2: WPML の言語 URL フォーマットを変更する
WP STAGING の Staging サイトで、WPML の言語設定を yourdomain.com/staging-site?lang=en のような URL ベースの言語に切り替えることができます。
この設定は WPML > Languages から変更できます。
注: Staging サイトを本番に Push し直す場合は、本番サイトのパーマリンク構造が変わらないように、Push する前に Staging サイト側のこの設定を元に戻すことをお勧めします。
オプション 3: 投稿名パーマリンクを有効化する
この記事に従って、Staging サイトで投稿名パーマリンクを有効化してみることもできます。
オプション 4: 言語ごとに異なるドメインを使う Staging サイトを作成する
例えば、英語版に example.com、フランス語版に example.fr、ドイツ語版に example.de ドメインを使っている本番サイトがあり、それぞれを staging.example.com、staging.example.fr、staging.example.de にクローンしたいとします。
この場合、以下のコードスニペットを mu-plugin として使う必要があります (お使いのドメインに合わせて修正してください):
function wpstg_cloning_custom_params($args)
{
$args['search_for'] = array_merge(
$args['search_for'],
['example.fr', 'example.fr']
);
$args['replace_with'] = array_merge(
$args['replace_with'],
['staging.example.fr', 'staging.example.de']
);
return $args;
}
add_filter('wpstg_clone_searchreplace_params', 'wpstg_cloning_custom_params'); 続いて、このガイドに従って、サブドメイン「staging.example.com」に Staging サイトを作成してください。もちろん、サブドメインは事前にホスティングのコントロールパネルから作成しておく必要があります。
これらの新しいサブドメイン (staging.example.fr、staging.example.de) も、ドメインの DNS マネージャーでメインの Staging サイトの IP を指すように設定するのを忘れないでください。
Staging サイトを本番サイトに Push した後も WPML のライセンスキーを保持する
本番サイトの WPML ライセンスデータを Staging サイトのデータで上書きせず、Push 処理後もそのまま保持したい場合は、mu-plugin ファイルを作成して、このコードスニペットを追加してください:
<?php
/*
Plugin Name: mu-plugin to keep the WPML license of the live site
Description: After you push the staging site to the live site, the live site's WPML license won't change
Version: 1.0
Author: WPSTAGING
*/
function wpstg_push_preserve_options($options){
$preserveOptions = ['wp_installer_settings'];
return array_merge($options, $preserveOptions );
}
add_filter('wpstg_preserved_options','wpstg_push_preserve_options');続いて Staging サイトを本番サイトに Push すると、同じ WPML ライセンスキーが保持され、上書きされません。
WPML のトラブルシューティングオプション
WP STAGING で WordPress サイトを Push またはクローンした後に、WPML の翻訳が思いどおりに動作しないことがあります。これは WPML の内部キャッシュ処理が原因であることが多いです。幸い、WPML には WPML のキャッシュをパージしてリフレッシュできる強力なトラブルシューティングオプションがいくつか用意されています。
このページの情報は WPML 上級ユーザー向けです。何をすればよいかわからない場合は、WPML のトラブルシューティングオプションを実行する前に、WPML のサポートにお問い合わせください。
WPML のトラブルシューティングページは WPML > Support から開けます。
troubleshooting のリンクをクリックします。

このオプションページから一覧されているアクションを実行する前に、WordPress サイトの Backup を作成してください。

下の表に、最も重要なコマンドと使用が想定されるシナリオの説明をまとめています:
| コマンド | 使用するタイミング |
| WPML のキャッシュをクリア |
|
| 翻訳テーブルからゴーストエントリを削除 |
|
| element_type の照合順序を修正 |
|
| WPML テーブルの照合順序を修正 |
|
| 言語情報を設定 |
|
| 文字列テーブルのクリーンアップと最適化 |
|
出典:
https://wpml.org/documentation/support/wpml-troubleshooting-options/