私は2つの言語でサイトを作りたいのですが、すべてのコンテンツは完全に同じになります(すべての投稿は翻訳されません)。
唯一の違いはWPLANG
に従って翻訳されるテーマメッセージ( '検索'、 'ページが見つかりません'など)のことです。 WPLANG
によれば、私はテーマの中でいくつかの条件を作る能力を持たなければなりません。
2つのサイトにすべての投稿と分類をコピーしたくないので、マルチサイトソリューションは私には適していません。
私はURLを介して(www.mysite.com/?lang=en
のように)識別を追加し、これに従ってWPLANG
を定義し、この変数をsession
に格納し、このようにしてテーマでそれを使用することを考えました。
しかし、もっと良い解決策はあるのでしょうか。
セッションに保存することは確かに可能ですが、まったく必要ではありません。
後でアクセスするURLにクエリ文字列を含めない方法を探しているのでなければ。 WPはすでにCookieに依存しており、セッションを使用していないため、ここではセッションよりもCookieを使用します。しかし、それは個人的な好みの問題です、と私は思います。
とにかく:
あなたのwp-config.phpでは、WPLANG
を条件付きで定義することができます(wp- config.phpは早くロードされますが、それ以外は通常のphpファイルです)
if ( isset( $_GET['lang'] ) ) {
define( 'WPLANG', $_GET['lang'] );
} else {
define( 'WPLANG', 'en_US' );
}
または、クエリパラメータに2文字の識別子を使用する場合や、パラメータが無効な場合にデフォルトで特定の言語(ここでは英語)に設定する場合は、次の手順を実行します。
$language = isset( $_GET['lang'] ) ? $_GET['lang'] : 'en';
switch ( $language ) {
case 'de':
define( 'WPLANG', 'de_DE' );
break;
case 'en':
default:
define( 'WPLANG', 'en_US' );
}