お問い合わせはコチラから

ウィジェットエリアにウィジェットがあるか確認する方法

サイト運営

WordPressでウィジェットエリアを自分で追加するカスタマイズをすることがあるかもしれません。ウィジェットの追加方法は検索すると沢山出来てきますのでコピペすればできると思います。

しかし、そのウィジェットエリアにウィジェットが設置されているかどうかを判定して、何か別の処理をしたいとします。その判定はどうしたらよいでしょうか?

スマホ用ウィジェットエリアに設置されていない時はPC用のウィジェットを使用したい場合に、ウィジェットが設置されているかどうか知りたくなります。

この記事ではウィジェットエリアにウィジェットが設置されているかどうかの判定の方法についてまとめています。

ウィジェットエリアにウィジェットが設置されているか判定するには?

実はウィジェットエリアを追加する時の記述にすでに答えが含まれています。

is_active_sidebarで判定できます。

ウィジェットエリアを追加する記述

ウィジェットエリアを追加する時には以下のように記述すると思います。

この書き方は定番になっていて、is_active_sidebarで最初に判定しています。

	<?php if(is_active_sidebar('widget_id001')) : ?>
		<?php dynamic_sidebar('widget_id001'); ?>
	<?php endif; ?>

この記述は、ウィジェット領域を定義するregister_sidebarの存在を確認しているのかと思っていたのですが、実は違っていてウィジェット領域にウィジェットが設置されているかどうかを確認している記述でした。

ウィジェットエリアにウィジェットが設置さていない場合はウィジェットエリアのHTMLそのものを出力しないという意味の記述なのだろうと思います。

is_active_sidebarを使ってウィジェットエリアを出し分ける

ウィジェットエリアwidget_id001があって、そのスマホ用としてsp_widget_id001があったとします。

sp_widget_id001にウィジェットが設置されていればsp_widget_id001を出力し、設置されていなければPC用のwidget_id001を出力する、という記述は以下のスニペットで実現できます。

<--- スマホウィジェットエリアを確認 --->
<?php if(is_active_sidebar('sp_widget_id001')) : ?>
<--- スマホウィジェットエリアを出力 --->
		<?php dynamic_sidebar('sp_widget_id001'); ?>
<?php else: ?>
<--- PCウィジェットエリアを確認 --->
    <?php if(is_active_sidebar('widget_id001')) : ?>
<--- PCウィジェットエリアを出力 --->
		   <?php dynamic_sidebar('widget_id001'); ?>
    <?php endif; ?>
<?php endif; ?>

プラグインを使う方が簡単かもしれない

ウィジェットエリアは簡単に追加できるのでPCとスマホ用にウィジェットエリアをわけると、ウィジェットエリアだらけになってしまいます。

PCとスマホでウィジェットを出し分けたいだけであれば、プラグインを使う方が簡単です。

widget logicというプラグインを使うと、一つのウィジェットエリアで表示する条件を複雑に指定できるようになります。

ウィジェットエリアが増えすぎて困る場合は検討してみてもいいかもしれません。

まとめ

ウィジェットエリア周りは、コピペで済ますことが多いので、記述の意味を理解していないまま使用していることが多いです。

今回も自分がやりたいことが、コピペしている記述ですでに実現されていることに気が付いていませんでした。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました