[Welcart]商品カテゴリー複合検索ページでの「strpos」と「!==」を使った条件分岐。

[Welcart]商品カテゴリー複合検索ページでの「strpos」と「!==」を使った条件分岐。

2017年10月28日

商品カテゴリー複合検索ページを表示した場合の条件分岐。今回は「strpos」と「!==」を使った方法の紹介です。

[Welcart]商品カテゴリー複合検索ページでの「strpos」と「!==」を使った条件分岐。

Welcartには「商品カテゴリー複合検索ページ(以下:複合検索ページ)」なるものがあり、カテゴリーを複数選択して絞り込み検索を行うことができるページがあります。

商品カテゴリー複合検索は、デフォルトでサイドバーのウィジェットでも用意されているんですが、今回は複合検索ページを表示した場合の条件分岐のお話を。

実はこちらの条件分岐、私が探した中ではめぼしい条件分岐などを見つけることができず、PHPの「strpos」を使用して無理やり実現しています。

「strpos」は、特定の文字列を含むかどうかのチェックをするもので、該当文字列が見つからない場合は、falseを返します。また「!==」は「不等価演算子」と呼ばれるもので、型も含めて、等しくなければ「真(true)」、型も含めて等しければ「偽(false)」を返します。ややこしいですね・・・。

「strpos」と「!==」を使い、「URLに特定の文字列が含まれていることが正しければ」という条件分岐を作ってみましょう。

header.php

<?php
  // $urlには前もって表示中のページのURLをいれてある。
  // 複合検索ページのURLには「search_item」の文字列がある。
  if ( strpos($url, 'search_item' ) !== false ) {
    $slug = 'search_item'; // 複合検索ページだった場合の処理を記述
  }
?>

多少力技ではありますが、URLの文字列に複合検索ページのURLを含むかどうかで判別しています。「strpos」と「!==」の条件分岐を応用することで他の色々なページに使えますね。

参考:【PHP】特定の文字列を含むかのチェック – Qiita