ページごとにウィジェットを表示するかどうかを決めたいときは「widget logic」プラグイン

Photo by Mikhail Vasilyev on Unsplash

ウィジェットエリアはページのサイドバーやフッターなどに存在していることが多いです。最新記事や、お問い合わせボタンなどの常に目にしてもらいたいものをこのウィジェットエリアに指定しますが、場合によっては「このページだけに表示したい(あるいはしたくない)」ということも出てくると思います。
そんなときにウィジェットの表示/非表示をコントロールするプラグイン「widget logic」を使うとページによってウィジェットの表示/非表示をコントロールすることができます。

例:お問い合わせページにお問い合わせボタンはいらない

例として、サイドバーに「お問い合わせボタン」を表示していることも多いかと思いますが、「お問い合わせページ」のサイドバーには「お問い合わせボタン」は要らないと思います。

この場合は、共通上部というウィジェットエリアに「お問い合わせボタン」を指定しているので「お問い合わせ」ページだけそのボタンを表示することができません。

そんなときにwidget logicプラグインを使えば、この「お問い合わせページ」の時だけ、このウィジェットを表示しないようにできます。

widget logic をインストールする

widget logicをインストールします。

ダッシュボード プラグイン>新規追加 をクリック

widget logicと入力すると、

このプラグインが見つかりますので、今すぐインストールをクリック

有効化をクリック。これでインストールが終了です。

widget logicを使って、あるページだけウィジェットを表示しないようにする

先ほどの「お問い合わせ」ページのときだけ、「お問い合わせボタン」を表示しないようにしたいと思います。

「お問い合わせボタン」のウィジェットを開きます。

すると、ウィジェットのロジックという入力項目が増えています。先ほどwidget logicをインストールして有効化したので、すべてのウィジェットにこの項目が増えました。

ここに「お問い合わせページの時は表示しない」という条件を入れたいと思います。

条件のいれかたは色々あるのですが、一番簡単な「ページ名が○○のとき、表示しない」という指定をします。

このような文字を入れます。

半角の ! は否定を表します(!を付けなければ肯定を表します)
is_page(‘ページ名’) で「ページ名」というところに記述したタイトル(あるいはスラッグ)のページの時 ということを表します

合わせてこの場合はページ名が「お問い合わせ」でないとき、表示するという指定になります。

入力したら保存をクリック。

これで、

お問い合わせページに「お問い合わせボタン」を表示しないようになりました。

widget logic のその他の使い方

一番簡単な例を書きましたがwidget logicには他にも色々な条件の指定方法があります。

条件を複数付ける

今回は「お問い合わせ」というページの場合だけ、非表示という指定にしましたが他のページでも非表示にしたい場合は、

このように条件を && (かつ) でつなげることで、2つのページで非表示にすることができます。

豆、ですが、否定型の条件の場合は ||(もしくは)ではなく &&(かつ) でつなげて下さい。もしも ||(もしくは) で否定型をつなげた場合

「お問い合わせ」という名前のページでないかもしくは「contactus」という名前のページでないときという条件になってしまい

「お問い合わせ」は「お問い合わせ」という名前のページだけど「contactus」という名前のページでないので当てはまってしまい、表示される

「contactus」は「contactus」という名前のページだけど「お問い合わせ」という名前のページでないので当てはまってしまい、表示される

ということになってしまうので、どんなページでも表示される、条件を何も付けないのと同じ状態になってしまいます。逆に「お問い合わせ」と「contactus」のページだけ表示したいときは ||(もしくは) でつなげないと条件に当てはまりません。

widget logicページに書いてある例

widget logicページにいくつかの例が書いてあります。

条件の部分は

is_home() – メインのブログページ

!is_page(‘about’) – どこでもこの特定のWP ‘ページを除いて’

!is_user_logged_in() – ユーザーがログインしていないときに表示されます

is_category(array(5,9,10,11)) – 指定されたカテゴリIDの1つのカテゴリページ

is_single() && in_category(‘baked-goods’) – このスラッグのカテゴリにあるシングル投稿

current_user_can(‘level_10’) – 管理者専用のウィジェット

strpos($_SERVER[‘HTTP_REFERER’], “google.com”)!=false – Google検索からクリックしたときに表示されるウィジェット

is_category() && in_array($cat, get_term_children( 5, ‘category’)) – カテゴリ5の子孫であるカテゴリページ

global $post; return (in_array(77,get_post_ancestors($post))); – 77ページの子ページであるWPページ

global $post; return (is_page(‘home’) || ($post->post_parent==”13″)); – ホームページまたは13ページの子ページ
追加の ‘;’ 終わりには明白な「リターン」があります。

このように多くの例が書いてあり、ログインユーザーやどこから参照してきたかなど沢山の条件が付けられるようですので試してみると色々なことができそうです。

兎本美佳

ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/
無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
ゆうそうとITブログはMIXHOSTで運営中
スポンサー広告
ブログをメールで購読

メールアドレスを記入して購読すれば、更新をメールで受信できます。

280人の購読者に加わりましょう

トップへ戻る

ゆうそうとについての説明

ゆうそうと とは東京都八王子市を中心として、WordPressによるWEBサイトの作成や、スポットでのIT相談を行ったり、年間契約でのIT顧問をなりわいとして活動しています。

特徴としては30年以上IT業界でプログラムを中心として仕事をしてきたものと、美大出身のデザイナーがワンストップで対応するため、幅広い対応が可能であることです。

IT相談は直接お会いしてのご相談の他、ZOOMによるオンライン相談も可能です。