我正在尝试用 DIV 包装侧边栏,如果侧边栏为空,则不应显示 DIV
但我不能使用像
if(dynamic_sidebar(1))
{
echo '<div>';
dynamic_sidebar(1);
echo '</div>';
}
因为如果它不为空,它将在 DIV 之前加载侧边栏,有什么想法吗?
我正在尝试用 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>';
}
您可以使用 WordPress is_dynamic_sidebar();功能。
true
如果任何已注册的侧边栏包含小部件,则返回;否则为假。
例子:
<?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 标识侧边栏。