ライセススタッフが書くブログ。

WordPressサイトの構築でよく使う条件分岐 その2

| Web制作のこと

目次

新年のご挨拶

明けましておめでとうございます。
昨年は格別のご厚情を賜り、誠にありがとうございました。
raisezは本年も「お客様に喜んで頂く」という基本に立ちかえり、ひとつずつ目の前のできることから取り組んで参りたいと存じます。
本年も変わらぬお引き立ての程よろしくお願い申し上げます。皆様のご健勝とご発展をお祈り申し上げます。

 

 

本題に進む前に・・・。

昨年(一ヶ月前)の記事 WordPressサイトの構築でよく使う条件分岐 にて自分の整理も兼ねてもっとボリュームのある記事を書きます!宣言してしまったので、空いてる時間を見つけて少しづつ書きました!

前回よりは中身のある記事になったと思います。(と言うより前回浅すぎました)

 

 

まず、if文の書き方

if〜endif

WordPressはPHPで構成されています。
よってPHPのif文を利用することが出来ます。

条件分岐をさせる基本の構文は「if文」を使います。

if文の中にWordPressの条件分岐タグを指定することで、WordPressサイトを構築する上でそのページで指定した条件に応じた出力を振り分ける事が可能です。

まず基本的な書き方をまとめてみます。

 

 

条件Aの場合のみ=出力する

☆if文は「もし~なら」という事です。
☆endifは直前のif文を実行する指定の終わりを指します。

 

条件Aの場合 と それ以外の場合では出力する

☆elseは「それ以外の場合」になります、直訳でも「他」という意味です。

 

条件Aの場合 と 条件Bの場合で出力する

☆elseifの意味はifとelseの組み合わせです。元のif式の値(例だと条件A)が FALSE(偽=違う) の場合に別の文を実行するif文。またelse文とは異なりelseif式が TRUE(真=合ってる) の場合にのみ代わりの式を実行します。

 

条件Aの場合 と 条件Bの場合 もしくは それ以外の場合で出力する

今までの組み合わせですが、やっとよく見るif文が出てきた感じです。ちなみにelseifはいくつでも増やして条件を増やす事が出来ます。

 

 

論理演算子を用いると、さらに分岐を指定できる。

2つ以上の条件分岐タグに論理演算子を組み合わせると、上記で書いた条件よりも細かい、というより多様な分岐が可能になります。

 

論理演算子の種類

(条件A) && (条件B) 
説明:条件A および 条件B が共に TRUE の場合に TRUE

(条件A) and (条件B)
説明:条件A および 条件B が共に TRUE の場合に TRUE

(条件A) || (条件B)
説明:条件A または 条件B のどちらかが TRUE の場合に TRUE

(条件A) or (条件B)
説明:条件A または 条件B のどちらかが TRUE の場合に TRUE

!(条件A)
説明:条件A が TRUE でない場合 TRUE

(条件A) xor (条件B)
説明:条件A または条件B のどちらかが TRUE でかつ両方とも TRUE でない場合に TRUE

 

全部で6種類ありますが、よく見ると「&&」と「and」が同じ意味です、「||」と「or」も同じ意味ですね。これは意味は同じでも優先順位が違うため2通りあると思って下さい。「&&」「||」は「and」「or」よりも優先順位が高いものとなっています。
詳しくはこちら 演算子の優先順位

 

よく使う論理演算子

WordPressサイト構築でよく使われる論理演算子は下記3種類です。
ひとつずつ用例を上げてみたいと思います。

  • (条件A) && (条件B)
  • !(条件A)
  • (条件A) || (条件B)

 

実際の用例 (条件A) && (条件B)

「および」より「かつ」のが個人的にしっくりくる。

 

実際の用例 !(条件A)

実際の用例 (条件A) && (条件B)を流用すると意味がわかりやすいと思いました。
!(条件A)は否定であり、条件Aではない場合に◯◯〜と指定できるので上記とは逆に「シングルページ および(かつ) カテゴリースラッグがnewsのアーカイブページ「ではない」場合に出力する、と指定することが可能です。

 

実際の用例 (条件A) || (条件B)

(条件A) || (条件B) は条件Aと条件Bのどちらかの条件に当てはまる場合に適用されます。

 

論理演算子の組み合わせ

論理演算子は組み合わせて使うことも可能です。
下記の例は「ホームページおよびフロントページ」、または「固定ページ」の場合に出力する記述です。
この場合、
is_home() && is_front_page()

( is_home() && is_front_page() )
と条件に括弧を加え1つのかたまりにします。

 

 

条件分岐タグ

全部記載すると膨大な量になるので、よく使われるもの以外は割愛します。
詳しくは 条件分岐タグ

is_home()
サイトのトップページ

is_front_page()
サイトのフロントページ(固定ページを設定した場合)

is_single()
シングルページ

is_page()
固定ページ

is_category()
カテゴリーのアーカイブページ

in_category( ‘カテゴリ名もしくはID’ )
シングルページが特定のカテゴリーに属しているか

is_tag()
タグのアーカイブページ

is_archive()
アーカイブページ

is_search()
検索結果ページ

is_404()
404ページ(Not Found)

is_paged()
2ページ目以降が存在するページ

wp_is_mobile()
モバイルデバイスからのアクセスかどうか

 

よく使う条件分岐例のまとめ

実際よく使う条件分岐タグを使用した例をまとめました。

サイトのホームまたはフロントページの場合に出力する。

 

サイトのホームおよびフロントページ「以外」の場合に出力する。

 

サイトのホームまたはフロントページとそれ以外で出力を分岐する

 

シングルページの場合に出力する。

 

特定のシングルページの場合に出力する。

 

特定のシングルページの場合に出力する。(複数)

 

固定ページの場合に出力する。

 

特定の固定ページの場合に出力する。

 

特定の固定ページの場合に出力する。(複数)

 

特定のカテゴリーのシングルページに表示する

 

特定のカテゴリーのアーカイブページに表示する

 

アーカイブページに表示する

 

ページの種類でコンテンツを分岐する

 

PCかモバイルデバイスからのアクセスでコンテンツを分岐する

 

 

else は省略できる

くどすぎるほどに「↑の条件以外のページで出力する内容がはいります(何もなくても可)」と書きましたが、なにもない場合はそもそもelseを使う必要がないので省略してしまっても大丈夫です。

 

 

取り敢えず今回の記事はここまでにします。
もう少し踏み込もうかなとも思ったのですが、記事が長くなりすぎると読む人も面倒になりそうなので一旦区切ります。




Webを作るのは人。

INFORMATION

raisez(ライセス)に興味を持った方は、是非チェックをしてください。

Webを楽しむのは人。

CONTACT

Web制作、Webビジネスのご相談はお気軽にご連絡ください。

お問い合わせ
TOPへ戻る