初歩的内容ですがおさらいとしてメモ。
別に、wordpressに関して話ではなくPHP全般のお話です。
今回は、マルチサイトのサブディレクトリ型を例に取り上げます。
こんな時
例えば、マルチサイトで多言語サイトを構築する際に、言語ごとのテーマは同じだが、サイトごとに出力を分岐したいことがあると思います。
ヘッダーH1タグのロゴにサイトホームをリンク設定する際には、echo home_url();
としたら、自動で各サイトのホームリンクを取得してくれるのですが、
仮に、h1ロゴの横にテキストがあったとして、各言語ごとに出力を変えなければいけないとします。
解決策1
各言語サイトにカスタムフィールドを設けて、それぞれ出力させる。
複雑な出力だったらこれでいいのでしょうが、短いテキストのみ出力の場合、フィールドをつくったり複製したり(修正したり)と管理上面倒なところがあります。
解決策2
本題ははこちらです。
結論から言いますとexplode('', '')
を使用します。
文字列を分割して、分割したものを配列にします。
なので、配列から判定に欲しい値を取ってきます。
以下、domain.jp/jp/
domain.jp/en/
の2サイトで分岐したいとします。
// 現在のURLを取得して、「/」ごとに分割します。
$urls = explode('/', $_SERVER['REQUEST_URI']);
// [0]には、ドメインが入ります。
if ($urls[1] === 'jp') {
echo '日本語サイト';
} else {
echo '外国語サイト';
}
あとは、関数化しておくと便利かも〜
function is_site_page($lang)
{
$urls = explode('/', $_SERVER['REQUEST_URI']);
if ($urls[1] === $lang) {
return true;
} else {
return false;
}
}
どんない切れ味のいいハサミを持っていても、ハサミの使い道をしらなければ意味がありませんね。
プログラミングってそういうことなのかも〜