前提・実現したいこと
PHP初心者です。Wordpressで作った日本語ホームページですが、/en/に英語版ページを用意しました。日本語以外の環境からアクセスした人には、/en/に振り分ける設定にしたいです。
コードをいくつかネットで見つけましたので、どれが良いかご教示ください。
https://stocker.jp/diary/wordpress_multilingual/
よると、以下を、
define ('WPLANG', 'ja');
以下で上書きするように、とあります。
該当のソースコード
// 言語判定(ブラウザの言語設定とGETの両方を確認)
if (preg_match('/^ja/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$locale = "ja";
define ('WPLANG', 'ja');
if(htmlspecialchars(@$_GET["lang"] == "en")) {
$locale = "en_US";
define ('WPLANG', 'en_US');
}
} else {
$locale = "en_US";
define ('WPLANG', 'en_US');
if(htmlspecialchars(@$_GET['lang'] == "ja")) {
$locale = "ja";
define ('WPLANG', 'ja');
}
}
該当のソースコード
<?php // ユーザーの言語に合わせてリダイレクトする。 $uri = $_SERVER["REQUEST_URI"]; $BASE_LANG = "en"; //無限ループが起こらないようにするために、/ja/や/en/にマッチしないときのみに以下の処理を行う if(!preg_match("/^[!-~][a-zA-Z]{2}[!-~]/",$uri)){ $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); $lang = $BASE_LANG; if(isset($languages)){ //languagesが空ではないとき $browser_lamguage = $languages[0]; $base_languages = array('ja','en'); foreach($base_languages as $base_language){ if(preg_match("/^$base_language/i", $browser_lamguage)){ $lang = $base_language; break; } } } $url = get_site_url()."/$lang/"; header("Location: $url"); exit(); } ?>質問
https://hacknote.jp/archives/39939/
またここには、上のコードがあります。これもやはり、define ('WPLANG', 'ja'); を、以下の、<?php以降の内容で上書きするということでしょうか?
https://kotori-blog.com/php/globalaccess/
https://teratail.com/questions/247687
にはそれぞれ2つのコードがありますが、それらをくっつけて使うのでしょうか?
1.正直どのコードが良いのかまったくわかりませんので、どれが良いかご教示ください。当方知識がないので、そのままコピペして使えるものでお願いします。
2.どのコードも、日本語ブラウザからのアクセスは A.comで、それ以外からのアクセスは A.com/en という設定なのでしょうか?
3.すべて、wp-config.phpをテキストエディタで開き、『define ('WPLANG', 'ja');』を、上にあるどれかのコードで上書きする、ということで良いでしょうか?
よろしくお願い申し上げます。