【WordPress】多言語対応 404 エラーページ

最終更新日: 公開日: 2022/02

ホームページを制作する場合はページが存在しない時のために表示するページを作成しておく.

いわゆる 404 Page Not Found の 404 ページのことである.
ページが見つからない時,その URL に相当するページが存在しない時に表示するページのことである.

404 Page Not Found

WordPress の場合,404.php という名前でテーマファイルの中に入れれば,通常はそれが表示される.

日本語以外に英語や中国語のページを一つの WordPress で制作している場合,404.php で場合分けする必要がある.
検索してもそのものが見つからなかったので投稿しておく.

どのような条件で表示を変えるか

日本語ページと英語ページはマルチサイトを使っている場合はそれぞれのテーマファイルの入っているディレクトリに別々の 404.php をおけば良い.
カスタム投稿タイプなどで作り分けている場合,404 Page Not Found のページはそもそも日本語?英語?どっちで表示すればいいのか?
英語のページの打ち間違いなのか,日本語ページの存在していないページに行ってしまったのか,それは URL だけでは判別できない.そもそもそんな URL のページは存在していないのだから.

そんな場合はブラウザの設定がどういう言語になっているかで判別するしかない.

PHP でブラウザの言語判別

WordPress の場合,PHP でブラウザの言語を判別する必要がある.

例えば,日本語と中国語とそれ以外(英語)に分ける場合は以下のようになる.

header-en.phpheader-zh.php を作っている場合は以下のようにする.

<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if ($lang == 'ja') {
  $lang = '';
<?php } elseif ($lang == 'zh') { ?>
  $lang = 'zh';
<?php } else { ?>
  $lang = 'en';
<?php };
  get_header($lang);
?>

本文の方は先ほどの続きで書くと

<?php if ($lang == '') { ?>
 日本語表記
<?php } elseif ($lang == 'zh') { ?>
 中国語表記
<?php } else { ?>
 英語表記
<?php } ?>

参考)
ブラウザの表示言語一覧環境変数 HTTP_ACCEPT_LANGUAGE - futomi's CGI Cafe
ブラウザ Chrome の言語変更Chrome の言語の変更とウェブページの翻訳

 

お問い合わせ

ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.

contact
Pagetop