ウィジェットが無効化されている場合にHTMLを出力したい状況になったのでメモ。
ウィジェットが有効・無効になっているかを判定する
ウィジェットが有効・無効になっているかどうかを判定するには、WordPress側で用意されているis_active_sidebar()
という関数を使います。ちなみにウィジェットが一切設定されていない状態が無効状態です。(逆に一つでもウィジェットが設定されていると有効状態です)
<?php if( is_active_sidebar('widget-name') ) :
dynamic_sidebar( 'widget-name' );
else : ?>
//ウィジェットが設定されていない場合(無効化状態)
<p>ウィジェット無いです</p>
<?php endif; ?>
is_active_sidebar()
の引数に登録したウィジェットのIDを渡すとtrueかfalseを返してくれるので、これで条件分岐します。ウィジェットのIDというのは、register_sidebar()
で登録するときに指定する値です。
register_sidebar( array(
'name' => 'サイドバー',
'id' => 'sidebar-name',
'before_widget' => '<div id="%1$s" class="widget-container %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>'
) );
ウィジェットはこんな感じで登録すると思いますが、上の例で言えば3行目の「’id’ => ‘sidebar-name’」がウィジェットのIDになります。