はい、備忘録。放送業務と兼務してるwebのお仕事で、内部のどのページから飛んで来たかで同一ページの内容を変える必要が発生しましてね。知らなかったんですが、以外なほど簡単に出来たので備忘録も兼ねて記事にしときますね。
今回紹介するのは、単純にリンク元(参照元)URLに含まれる文字列で振分けると言う一番簡単な方法です。
参照元のURLを抽出して条件分岐をする
<?php $url = $_SERVER['REQUEST_URI']; ?> <?php if(strstr($url,'条件となる文字1')): ?> ◯◯◯ <?php elseif(strstr($url,'条件となる文字2')): ?> △△△ <?php else: ?> //それ以外の場合 ☓☓☓ <?php endif; ?>
簡単に解説。
1行目の$_SERVER[‘REQUEST_URI’]で参照元のURLを取得。それを$urlに代入。
2行目のstrstrは文字列1から文字列2を検索すると言う意味で、ここで言う文字列1は$urlでここには1行目で代入した参照元URLが代入されている。そこから文字列2(条件となる文字1)を検索し、あるならば3行目の内容が表示される。
4行目のelseifと5行目の内容部分は無ければ削除、条件を増やしたかったらコピペ。
言うまでもなくelseはそれ以外の場合ね。
参照元URLに引数をもたせよう
上記の記述で条件分岐は問題なく出来るけど、都合よくURLに含まれる文字列で振分けられない事もあるよね。例えばWordPressと言う文字列で条件分岐をしたいけど、WordPressと言う文字列が含まれるページが複数あったら分岐出来なくなっちゃうよね。
そんな時は参照元URLに引数を持たせれば良いんです。引数とはURLの最後に「?」以降に記述されている文字列で、「?」以降であれば何を書いてもリンク先に影響を与えません。付け方は単純で、下記の様にhrefのリンク先に手書きで追記すれば良いんです。
<a href="http://nangoku-ski-club.sakura.ne.jp/?cat=001">◯◯ページヘ</a>
上記サンプルコードの場合「?」以降のcat=001が引数です。イコールを書いていますが、他のページのURLと被らないように個性を出しているだけで必ず付けなきゃ駄目って訳では無いです。
まとめると…
参照元1(引数にcat=001)
<a href="http://nangoku-ski-club.sakura.ne.jp/?cat=001">◯◯ページヘ</a>
参照元2(引数にcat=002)
<a href="http://nangoku-ski-club.sakura.ne.jp/?cat=002">◯◯ページヘ</a>
リンク先の条件分岐
<?php $url = $_SERVER['REQUEST_URI']; ?> <?php if(strstr($url,'cat=001')): ?> <p>参照元URLにcat=001が含まれる場合の内容</p> <?php elseif(strstr($url,'cat=002')): ?> <p>参照元URLにcat=002が含まれる場合の内容</p> <?php else: ?> <p>参照元URLにcat=001もcat=002も含まれない場合</p> <?php endif; ?>
とすれば、リンク元のURLによって同一ページ内の表示内容を変える事が出来ます。
COMMENTS:コメ無し(つд・)エーン
CATEGORY:WORDPRESSTAGS:wordpress