ワードプレス - サイドバーがそれをロードすることなく、空であるかどうかを知る方法は?
-
20-09-2019 - |
質問
私はDIVでサイドバーをラップしようとしている、とサイドバーが空の場合はDIVを表示するべきではありません。
しかし、私のようなコードを使用することはできません。
if(dynamic_sidebar(1))
{
echo '<div>';
dynamic_sidebar(1);
echo '</div>';
}
が空でない場合、それはDIV前にサイドバーをロードするように、任意のアイデア?
解決
あなたは常に出力バッファリングを使用することができます。出力バッファリングがオンのとき、通常は画面に表示されるものではなく、バッファに格納されています。その後、何かがあなたの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>";
}
他のヒント
試します:
if ( is_active_sidebar(1) )
{
echo '<div>';
dynamic_sidebar(1);
echo '</div>';
}
あなたは、ワードプレス is_dynamic_sidebar()に使用することができます。機能ます。
登録されているすべてのサイドバーにウィジェットが含まれている場合は、これはtrue
を返します。それ以外の場合はfalseを返します。
の例:の
<?php if(is_active_sidebar('my-sidebar') ) { ?>
<div class="about-us">
<?php dynamic_sidebar('my-sidebar'); ?>
</div>
<?php } ?>
これは私がfunctions.php
から実行ウィジェットエリア/サイドバーレジスタのスクリプトです。
function foxinni_widgets_init() {
register_sidebar( array(
'name' => 'My Sidebar',
'id' => 'my-sidebar',
'description' => '','before_widget' => '','after_widget' => '','before_title' => '','after_title' => '',
) );
}
add_action( 'widgets_init', 'foxinni_widgets_init' );
私は、文字列、my-sidebar
、idでサイドバーを識別するために使用します。お知らせます。
所属していません StackOverflow