0

サイドバーを DIV でラップしようとしていますが、サイドバーが空の場合、DIV は表示されません。

しかし、私は次のようなコードを使用できません

if(dynamic_sidebar(1))
{
  echo '<div>';
  dynamic_sidebar(1);
  echo '</div>';
}

空でない場合、DIVの前にサイドバーをロードするので、アイデアはありますか?

4

3 に答える 3

4

出力バッファリングはいつでも使用できます。出力バッファリングがオンの場合、通常は画面に表示されるものはすべて代わりにバッファに格納されます。次に、div タグを出力する前に、バッファーに何かがあるかどうかをテストできます。

ob_start();
dynamic_sidebar(1);
$sidebar = ob_get_clean();  // get the contents of the buffer and turn it off.
if ($sidebar) {
    echo "<div>" . $sidebar . "</div>";
}
于 2010-03-18T10:13:27.603 に答える
3

試す:

if ( is_active_sidebar(1) )
{
  echo '<div>';
  dynamic_sidebar(1);
  echo '</div>';
}
于 2010-03-18T10:10:44.313 に答える