is_active_sidebar じゃダメなこと
じゃあ、そのウィジェットエリアに中身がはいってるのか?ってのが気になるところ。
参考→NeGiMeMo.net
実際問題、ウィジェットエリアに中身がなかったらBOXだしたくないって言う場合、エリアがあるかどうかではなく、そのエリアに中身があるかどうかを知りたいわけで、参考にさせていただいた、NeGiMeMo.net 様では、「is_active_sidebar を使ったら~」のようなことを書かれていますが、いや、それだと目的を果たせなかったのですわ。ってことで、モジュールを拝借いたしました。
function wp_isset_widets($index = 1,$echo = false) { global $wp_registered_sidebars; if (is_int($index)) { $index = "sidebar-$index"; } else { $index = sanitize_title($index); foreach((array)$wp_registered_sidebars as $key => $value) { if (sanitize_title($value['name']) == $index) { $index = $key; break; } } } $sidebar_widgets = wp_get_sidebars_widgets(); if (empty($wp_registered_sidebars[$index]) || !array_key_exists($index,$sidebar_widgets) || !is_array($sidebar_widgets[$index]) || empty($sidebar_widgets[$index])) return false; $result = count($sidebar_widgets[$index]); if ($echo) { echo $result; } else { return $result; } }
実際どう使うかといえば、まぁ、NeGiMeMo.net様にもあるように・・・
<?php if ( wp_isset_widets( 'インフォメーション',false ) ) : ?> <div class="item w2"> <article> <div class="inner"> <ul class="bxslider"> <li> <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('インフォメーション') ) : ?> <?php endif; ?> </li> </ul> </div> </article> </div> <?php endif; ?>これで 「インフォメーションのウィジェットエリアが空なら」item w2 のBOXを吐き出さずに済むってことになりんした。
スポンサーリンク