限制取决于现有参数以及几乎所有小部件通常输出内容的方式:
echo $args[\'before_widget\'];
if ( $title ) {
echo $args[\'before_title\'] . $title . $args[\'after_title\'];
}
// Widget content
echo $args[\'after_widget\'];
一些小部件可能提供内容挂钩之前/之后,但如果您想要一个“全局”修复,那么没有可靠的方法。
我能看到的唯一解决方案是添加两次包装并使用CSS:empty
要隐藏剩菜,请执行以下操作:
register_sidebar(
array(
\'before_widget\' => \'<div class="box box_push"><div class="box box-bd">\',
\'before_title\' => \'</div>\', // If we have a title, close the wrap above
\'after_title\' => \'<div class="box box-bd">\', // Now open another one
\'after_widget\' => \'</div></div>\',
)
);
因此,对于具有标题的小部件,您将最终得到:
<div class="box box_push">
<div class="box box-bd"></div>
Widget Title
<div class="box box-bd">
Widget content
</div>
</div>
输入上述CSS:
.box-bd:empty {
display: none;
}
这将隐藏第一个冗余包裹。有点脏,我知道,但这意味着不管有没有标题,你都会把你的内容包装在
.box-bd
.