「WordPress」loop.phpの中で条件分岐するときの論理演算子の使い方。

カテゴリー:
WordPress

テンプレートファイルの管理をしやすくするアイデアとして、テンプレートファイルをまとめる方法を考えてみました。
例えば、以下のような条件の時、

  1. 現状使用しているテンプレートはhome,single,page,archive,index,loop,loop-single
  2. 必要なループは2パターン。「(1)single,page」用と、「(2)それ以外」用
  3. loop.phpにふたつのループをまとめて記述して管理したい。

loop.phpに(1)と(2)に適したループを記述して、そのふたつを条件分岐で分岐するという方法でまとめてみました。
そのとき、論理演算子の使い方を調べました。

必要になる条件分岐のタグは下記になります。

注意すべき論理演算子の使い方としては、

で使われている&&は、「2つの値が成り立つとき」trueを返す、つまり実行されます。成り立たない場合はfalseを返して無視されます。singleではない、pageではない、ときにtrueを返す記述です。

「singleとpage」ではないテンプレートは「home,archive,index」なので、home.php,archive.php,index.phpが使われている時にtrueを返して中に記述したループタグが実行されます。

と記述してもいいと思いますが、将来的にテンプレートファイルが増えたとしても、記述の修正なしで対応できるというメリットがあります。

次に、

ここで使われている||は「2つの値の片方または両方が成り立つとき」にtrueを返すので、「home,single,page,arcive,index」の中で、single.phpまたはpage.phpが使われているときにtrueが返されて実行します。

論理演算子を適切に使えば、多彩なパターンの条件分岐を作れそうです。
今回はloop.phpの中にループを複数作りましたが、ひとつのループの流れの中で分岐させてもいいでしょうし、いろいろできそう。

テンプレートファイルを増やすか、条件分岐で書き分けるか。案件によっても異なりますが、見通しのよいテーマ作成のひとつの手法になると思います。

参考サイト:演算子/PHP入門

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です