1
1

More than 3 years have passed since last update.

wordpress URL判定で分岐→出力するためのちょっとしたお話

Last updated at Posted at 2020-06-04

初歩的内容ですがおさらいとしてメモ。
別に、wordpressに関して話ではなくPHP全般のお話です。
今回は、マルチサイトのサブディレクトリ型を例に取り上げます。

こんな時

例えば、マルチサイトで多言語サイトを構築する際に、言語ごとのテーマは同じだが、サイトごとに出力を分岐したいことがあると思います。

ヘッダーH1タグのロゴにサイトホームをリンク設定する際には、echo home_url();としたら、自動で各サイトのホームリンクを取得してくれるのですが、
仮に、h1ロゴの横にテキストがあったとして、各言語ごとに出力を変えなければいけないとします。

解決策1

各言語サイトにカスタムフィールドを設けて、それぞれ出力させる。
複雑な出力だったらこれでいいのでしょうが、短いテキストのみ出力の場合、フィールドをつくったり複製したり(修正したり)と管理上面倒なところがあります。

解決策2

本題ははこちらです。
結論から言いますとexplode('', '')を使用します。
文字列を分割して、分割したものを配列にします。
なので、配列から判定に欲しい値を取ってきます。

以下、domain.jp/jp/ domain.jp/en/の2サイトで分岐したいとします。

test.php
// 現在のURLを取得して、「/」ごとに分割します。
$urls = explode('/', $_SERVER['REQUEST_URI']);

// [0]には、ドメインが入ります。
if ($urls[1] === 'jp') {
echo '日本語サイト';
} else {
echo '外国語サイト';
}

あとは、関数化しておくと便利かも〜

test2.php
function is_site_page($lang)
{
  $urls = explode('/', $_SERVER['REQUEST_URI']);
  if ($urls[1] === $lang) {
    return true;
  } else {
    return false;
  }
}

どんない切れ味のいいハサミを持っていても、ハサミの使い道をしらなければ意味がありませんね。
プログラミングってそういうことなのかも〜

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1