★★★ たった "1日" でできるWordPressブログの作り方講座 ★★★ はじめてみる

WordPressウィジェットを条件で切り替え「Widget Logic」の使い方

ウィジェットをPCとスマホで別々のもの表示したいんですけど、なんかいい方法ないですかね~?
それならWidget Logicを使おう。これを使うと特定の条件でだけウィジェットを表示できるんだ
へぇ~そんなプラグインもあるんだ。便利そう!

WordPressではサイドバーやタイトル上などの固定領域に表示されるコードはウィジェットと呼ばれ、全てのページ、全てのPCやスマホ・タブレットなどの端末で表示されます。

しかしウィジェットによってはスマホやPCで表示・非表示を切り替えたり、特定のページではウィジェットを表示したくないということがあるかもしれません。

ここではそのような場面で役立つ「Widget Logic」というプラグインの使い方を解説します。

Widget Logicの導入と使い方

メニューから「プラグイン」ー>「新規追加」と進み、プラグイン名で検索すると検索結果に次のようにプラグインが出てくるのでインストールしてください。

以下のからダウンロードして使うことも可能です。

https://ja.wordpress.org/plugins/widget-logic/#description

インストールして有効化したら「外観」ー>「ウィジェット」と進んで設置済みのウィジェットをどれか適当に開いて見てください。

例えばサイドバー領域に設置されている「検索」ウィジェットを開くとその中に「ウィジェットのロジック」という項目が追加されています。下の画像のオレンジ色の枠で囲った場所です。

この中に「ウィジェットを表示する条件」を書いていきます。

例えばスマホやタブレットでだけこのウィジェットを表示したいなら「ウィジェットのロジック」内に次の条件を書きます。

wp_is_mobile()

これを入力して「保存」を押すと検索バーがスマホやタブレットだけで表示され、PCでは表示されなくなります。

このような条件を指定できるものを「条件分岐タグ」と呼び、このタグを1つまたは複数使ってウィジェットの表示・非表示を切り替えることができます。

代表的な条件分岐タグ

知っておくと便利な条件分岐タグには次のようなものがあります。

wp_is_mobile()

これはスマホまたはタブレットでページを見ている場合に有効になります。

より正確にいえばスマホの場合は「true」という真偽値を返し、PCの場合は「false」という真偽値を返します。

なのでもしPCでのみウィジェットを表示したいという場合は次のように真偽値を逆転させる「!」記号を使えばPCだけの表示になります。

!wp_is_mobile()

is_single()

これは個別投稿ページかどうかを判別する条件分岐タグです。

個別投稿ページとは「投稿」ー>「新規追加」から追加されるページのことで固定ページやトップページなどは含みません。

またこのタグを使うと特定の投稿ページだけでウィジェットを表示するということもできます。

例えば次のURLを持つ投稿ページがあるとしましょう。

http://blog.xxx.jp/2018/03/19/post-11/

このページだけでウィジェットを表示したい場合はURL最後のID(この場合は11)をis_singleに渡して次のようなタグを書きます。

is_single('11')

また複数の投稿ページでウィジェットを表示する場合は次のようにarray内に投稿IDをコンマ(,)区切りで記述します。

is_single( array( 11, 5, 7, 16 ) )

またis_singleにはタイトルまたは投稿スラッグを渡すことも可能です。

タイトルの場合は次のようにタイトルを渡すだけですが、完全一致する場合のみ有効です。下の例なら「はじめまして、こんにちは」というタイトルの記事は条件に一致しません。

is_single("はじめまして")

投稿スラッグとはURLに表示されるカテゴリー名のことで、もし記事URLに「wordpress」というスラッグが含まれた記事でウィジェットを表示したいなら次のように記述します。

is_single("wordpress")

ちなみにis_single()では投稿ID、タイトル、投稿スラッグは区別されません。

is_page()

これはWordPressページつまり固定ページかどうかを判断する条件分岐タグで、is_single()と同じく投稿IDやタイトルや投稿スラッグを指定してさらに条件を絞り込むことが可能です。

以下はいくつかの簡単な使用例

投稿IDが11の固定ページだけでウィジェットを表示

is_page('11')

タイトルが「このブログについて」という固定ページでだけウィジェットを表示

is_page( 'このブログについて' )

投稿スラッグが「wordpress」という固定ページでだけウィジェットを表示

is_page('wordpress')

is_category()

これはカテゴリーページが開かれていかどうかを判定する条件分岐タグです。

また次のようにカテゴリー名やURLに表示されるカテゴリーのスラッグ名を渡すことでさらに条件を絞る書き方も可能です。

以下がis_categoryによるカテゴリー絞り込みの使用例

カテゴリー名が「ワードプレス」のカテゴリーページでのみウィジェットを表示

is_category('ワードプレス')

カテゴリースラッグが「wordpress」のカテゴリーページでのみウィジェットを表示

is_category('wordpress')

in_category

これは投稿ページまたは固定ページにあるカテゴリー名またはカテゴリーのスラッグなどが含まれているかどうかを判定する条件分岐タグです。

次がin_categoryを使った絞り込みの例

「ワードプレス」という名前のカテゴリーがつけられたページでウィジェットを表示する場合

in_category('ワードプレス')

「wordpress」というスラッグを持つカテゴリーがつけられたページでウィジェットを表示する場合

in_category('wordpress')

is_category()とin_category()は大きく意味が違うので使用するときは注意してください。

複雑な条件を書くのに必要な演算子

ただ条件分岐タグを書くだけだと「スマホの場合でなおかつ投稿ページでだけウィジェットを表示」というような複雑な条件を書くことはできません。

そこで論理演算子という複雑な条件を書くための演算記号を使います。

not演算子

ある条件が満たされないときに何か処理をしたい場合はnot演算子を使います。次のように1つの条件分岐タグの前に「!」記号をつけるだけです。

!wp_is_mobile()

このように書くとスマホ以外つまりPCのときだけウィジェットが表示されるようになります。

and演算子

複数の条件が全て満たされている場合だけウィジェットを表示したい場合はand演算子を使います。次のように複数の条件分岐タグを「&&」でつなげます。

wp_is_mobile() && is_single()

上の例ではスマホで個別投稿ページが表示されている場合のみウィジェットが有効になります。

以下はand演算子の使い方の例です。

PCで「23」というIDをもつ投稿ページが見られた時にウィジェットを表示

!wp_is_mobile() && is_single('23')

「ワードプレス」というカテゴリーがつけられた投稿ページでウィジェットを表示

in_category('ワードプレス') && is_single()

スマホで「ワードプレス」というカテゴリーがつけられた個別ページでウィジェットを表示

wp_is_mobile() && in_category('ワードプレス') && is_page()

or演算子

and演算子と違い、複数の条件のうちで一部だけでも条件だけ満たしている場合にウィジェットを表示したい場合はor演算子を使います。次のように複数の条件分岐タグを「||」で結びます。

is_single() || is_page()

上の例だと個別投稿ページまたは固定ページの両方でウィジェットが表示されます。

以下はor演算子の使い方の例です。

「ワードプレス」というカテゴリー名を含むカテゴリーページまたは投稿・固定ページでウィジェット表示

is_category('ワードプレス') || in_category('ワードプレス')

7,3というIDを持つ投稿ページと1,2というIDの固定ページでウィジェットを表示

is_single( array(7, 3) ) || is_page( array(1, 2) )

まとめ

ここではウィジェットに様々な条件を指定してその条件に当てはまるときにウィジェットを表示できる「Widget Logic」というプラグインについて紹介しました。

ウィジェットをスマホやPCだけで切り替えるだけでなく特定のページや特定のカテゴリーなどで表示を切り替えでき、さらに論理演算子を使えば複雑な条件指定も可能です。

The following two tabs change content below.

フク郎

昔はプログラミングに熱中していたが、ブログとWordPressに興味を持ち始め今はサイト・ブログ作りが生きがい。自分の「好き」をブログに変えたい、情報発信したい人に役立つWordPress術・サイト構築術を発信中。一日一歩楽しんでブログ構築できるように読みやすい&楽しい記事作りを心がけています。Twitterアカウントはこちら ⇒ フク郎@Fukuro-Press