私は5つの言語バージョンを使用してさまざまな市場をターゲットにしたWebサイトを引き継ぎました。それぞれがマルチサイトネットワーク内の独自のサイトとして設定されています。メインのWebサイトは主にイギリスの視聴者を対象としており、言語バージョンの1つはアメリカの視聴者を対象としています。
Htmlタグの中でlang
を正しく取得するには、この<html <?php language_attributes(); ?>>
のように、各サイトのサイトの言語を、そのサイトが書かれている言語に設定する必要があります。そしてWPウェブサイトによるとen_US言語ファイルはありません。
人々は通常これをどのように解決しますか?この場合、各サイトのlang属性をハードコードすることはできましたが、それでも将来の使用に備えて疑問が生じます。
ETA:以下の@toschoによって提案されたコードに基づいて、これを私の関数ファイルに追加しました。それはリストに言語を追加しますが、それは何らかの理由で保存されません。 $current
パラメータは前のパラメータを保持しています。
add_filter('mu_dropdown_languages', 'add_en_us', 10, 3);
function add_en_us( $output, $lang_files, $current ) {
array_unshift(
$output,
'<option value="en_US"' . selected( $current, 'en_US', false ) . '>'
. __( 'American English' ) . "</option>"
);
return $output;
}
このプロジェクトの時間的制約に基づいて、代わりに空の言語ファイルを追加しようとしますが、それでもこれを正しく機能させる方法を知りたいのですが。
mu_dropdown_languages
をフィルタリングして、ここでアメリカ英語を再度追加することができます。
テストされていないサンプルコード
add_filter( 'mu_dropdown_languages', function( $output, $lang_files, $current )
{
array_unshift(
$output,
'<option value=""' . selected( $current, 'en_US', false ) . '>'
. __( 'American English' ) . "</option>"
);
return $output;
}, 10, 3 );
sanitize_option_WPLANG
またはpre_update_option_WPLANG
をフィルタリングして保存プロセスに入り、考えられる問題を修正します。