The current article

WordPressで参照元のページ(リンク)URLとかパラメータで条件分岐さる方法

WordPressにURLに含まれる文字列からの条件分岐タグが用意されてないようなので、 同一ページで内容をURLやパラメータで振り分ける方法の備忘録です。
少し強引かもですが、チェックボックスの値で分岐出来るんじゃないかなと。

branch1

capture

記述例(URL)

例えば、URL内に「branch」が含まれる場合と含まれない場合の分岐は

<?php $url = $_SERVER['REQUEST_URI']; ?>

<?php if(strstr($url,'branch')): ?>
文字列が含まれる時の表示
<?php else: ?>
文字列が含まれない時の表示
<?php endif; ?>

1行目で参照元のURLを取得し、それを$urlに代入。
3行目で参照元URLに文字列が含まれているか判定。
文字列があれば4行目が表示、
なければ6行目が表示となります。

記述例(パラメータ)

ここで、「branch」と言う文字列が含まれるページが複数あったら困りますよね。
そんな時は、パラメータを付けて分岐ですかね。
URLの最後のほうに「?」が付いたヤツですね。
「?」以降はリンク先に影響を与えませんので、
リンク元に

<a href="http://hogehoge.com/?branch=1">リンク先</a>

のように「?branch=1」とか適当に手書きで付け足して、
リンク先に

<?php $url = $_SERVER['REQUEST_URI']; ?>

<?php if(strstr($url,'branch=1')): ?>
パラメータが1の時の表示
<?php else: ?>
パラメータが1以外の時の表示
<?php endif; ?>

もしくは、

<?php $branch = $_REQUEST["branch"]; ?>

<?php if($branch == 1): ?>
パラメータが1の時の表示
<?php else: ?>
パラメータが1以外の時の表示
<?php endif; ?>

と書きます。
パラメータを取得する場合は、後者のほうがスマートかもですね。

例えばなんですが

タクソノミー等を追加しないで、アーカイブページ内で、ACFの複数選択チェックボックスの当てはまるものだけ抽出するときに使用とか。

リンク元

<a href="http://hogehoge.com/fuga/?branch=1">チェックがAとかBの時</a>
<a href="http://hogehoge.com/fuga/">それ以外CとかDとかの時</a>

リンク先

<?php $branch = $_REQUEST["branch"]; ?>
<?php if($branch == 1):	//チェックがAとかB
$args = array(
  'post_type' => '投稿タイプ名',
	'meta_query' => array(
		array(
		'key'=>'フィールド名',
		'value'=>'フィールドの値A',
		'compare' => 'LIKE'
		),
		array(
		'key'=>'フィールド名',
		'value'=>'フィールドの値B',
		'compare' => 'LIKE'
		),
		'relation'=>'OR',
	)
);

 else:			//それ以外CとかDとか

$args = array(
  'post_type' => '投稿タイプ名',
	'meta_query' => array(
		array(
		'key'=>'フィールド名',
		'value'=>'フィールドの値C',
		'compare' => 'LIKE'
		),
		array(
		'key'=>'フィールド名',
		'value'=>'フィールドの値D',
		'compare' => 'LIKE'
		),
		'relation'=>'OR',
	)
);
endif;

$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>

   ・
   ・
   ・

備忘録なんで、こんな使い方するかはご愛嬌ということで^^;
参考になれば幸いですー


Category

Service

Guidance

Salutation

WPCは大阪を中心に、ホームページ制作、リニューアル、コーディング、更新業務、各種印刷物制作、スキルアップ出張講習・セミナー等取り扱っております。
どこの会社に作成を依頼しようかとお悩みの方、リニューアルしたいんだけど良いプランはないかなとお探しの方、本格派のデザイナーにデザインを依頼したい、 コーディングだけ頼みたい、更新だけ頼みたい、パソコンやソフトの使い方を教えて欲しいなど、どんな事でもWPCまでお気軽にご相談ください。