个性化阅读
专注于IT技术分析

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 } ?>

这是我从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标识了侧边栏。

赞(0) 打赏
未经允许不得转载:srcmini » WordPress-如何知道边栏是否为空而不加载它?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏