この実装、面倒なら代行します
日英対応のサイトを作っていると、英語圏からのアクセスは英語ページを表示させてほしい、という要望をたまにいただきます。
今回はこの解決事例を紹介します。
方法はいろいろありそうですが、一つの方法として、ブラウザの言語設定を取得して、その最優先言語が英語(’en’)だった場合に英語ページにリダイレクトさせる方法があります。
今回は簡単そうなこの方法で対応することにします。
すでに英語ページ(下層ページ含む)にいる英語圏ユーザーをリダイレクトさせないようにしないといけないので、今いるページのURIを取得して、それが英語ページだった場合にはリダイレクトをしないようにしないといけません。
そこだけ注意すればあとは簡単です。
テーマのfunctions.phpに以下の追記します。
add_action('template_redirect', 'language_based_redirection'); function language_based_redirection() { // 現在のURLを取得 $current_url = home_url($_SERVER['REQUEST_URI']); // 現在のURLが英語ページまたはその下層ページであるかをチェック $is_english_or_subpage = preg_match('#/en(/|$)#', $current_url); // ブラウザの言語設定を確認(最優先の言語のみを使用) $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); $primary_language = strtolower(trim(explode(';', $languages[0])[0])); // 英語のロケールをチェックする(例:'en', 'en-US', 'en-GB' など) if (preg_match('/^en(-|$)/', $primary_language) && !$is_english_or_subpage) { // 英語が最優先言語で、英語ページまたはその下層ページでない場合のみ英語ページ(ここでは「/en」)にリダイレクト wp_redirect(home_url('/en')); exit; } }
これで、英語圏ユーザー(正確には言語設定が英語のブラウザ)からのアクセスで日本語ページを開こうとすると、英語ページにリダイレクトさせることができます。
※ リダイレクト先を間違えたりすると、リダイレクトループになってしまいますのでご注意ください。
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!
100ウェブで手がけた制作・開発案件を一部、ご紹介。
クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について確認いただけます。
【テレワーク実施中 につきお電話転送中】
コール中1秒程度無音状態になりますがそのままお待ちください。
受付時間
平日 10:00~18:00
メールでのお問い合わせでも
1営業日以内にご連絡いたします。