WordPress-如何知道边栏是否为空而不加载它()

我正在尝试用DIV包装侧边栏, 如果侧边栏为空, 则不应显示DIV
但是我不能使用像

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

因为如果不为空, 它将在DIV之前加载侧边栏, 有什么想法吗?
#1你始终可以使用输出缓冲。当打开输出缓冲时, 通常会回显到屏幕的所有内容都存储在缓冲区中。然后, 你可以在输出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> "; }

#2尝试:
if ( is_active_sidebar(1) ) { echo '< div> '; dynamic_sidebar(1); echo '< /div> '; }

#3你可以使用WordPress is_dynamic_sidebar(); 功能。
如果任何注册的侧边栏包含小部件, 则返回true;否则返回true。否则为假。
例子:
< ?php if(is_active_sidebar('my-sidebar') ) { ?> < div class="about-us"> < ?php dynamic_sidebar('my-sidebar'); ?> < /div> < ?php } ?>

【WordPress-如何知道边栏是否为空而不加载它()】这是我从functions.php运行的widget-area / sidebar注册脚本:
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标识了侧边栏。

    推荐阅读