2010-03-18 57 views
0

我想通过一个DIV包裹侧边栏,如果侧边栏是空的DIV不应该显示WordPress - 如何知道侧栏是否为空而不加载?

但我不能使用电码一样

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

,因为它会之前加载侧边栏DIV如果不是空的,有什么想法?

回答

2

您可以随时使用输出缓冲。当输出缓冲打开时,任何通常会回显到屏幕的内容都会存储在缓冲区中。然后可以在输出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>'; 
} 
+0

它不起作用 – Edward 2010-03-18 10:47:59

2

可以使用WordPress的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。

相关问题