お客様のサイトを作成していて、WordPreess のphpファイルをちょっとだけいじりました。その備忘録も兼ねて記事にさせてもらいます。
今回、1つのサイト(日本語)の中に英語ページを設ける事になました。英語ページの時はグローバルメニューを英語にして出さなければなりません。
まず、英語のTOPページは固定ページで作成しスラッグ名を「english」。
http://ドメイン名/english/ でアクセス出来ます。
英語のコンテンツは全て固定ページで /english/ の下に配置するように作成。
http://ドメイン名/english/reservation/
http://ドメイン名/english/profile/
こんな感じです。
ここ迄は固定ページを作る時、親ページを指定してあげます。次はグローバルメニューの調整です。
投稿のカテゴリーで行う場合は「is_category($category);」という関数を使えば良いのですが今回は固定ベージでやったので、この関数は使えません。
結局 WordPress の関数ではなく、php の環境変数を利用する事にしました。
if(preg_match('/^\/english\//',$_SERVER['REQUEST_URI'])){ //英語の場合の記述 }else{ //英語以外(日本語)の場合の記述 }
URI の部分が「/english/」で始まる場合は英語ですよ。と条件分岐をしました。
これを利用しているテーマフォルダ下の
header.php
sidebar.php
footer.php
の必要箇所に記述して英語用のメニューと日本語用のメニューを書き入れればグローバルメニューのコントロールが出来ます。
コメント