我不建议这样做。更容易使用clearfix hack 强制清除并将该样式添加到您的小部件。Clearfix攻击是透明的:如果它们发生在所有元素上,则没有明显的区别,除了清除浮动。
在你的主题中的某个地方style.css
:
.widget:before,
.widget:after {
content: " ";
display: table;
}
.widget:after {
clear: both;
}
.widget {
*zoom: 1;
}
当然,你可以把它放在任何地方。你可以
wp_head
或
wp_footer
并为其弹出一个自定义样式标记。或者你可以更具体一些。例如,如果您正在注册一个自定义小部件,您可以添加一个clearfix hack,特别是通过classname。
或者,如果您真的只想向某个小部件添加一个clear div,您可以挂接到dynamic_sidebar_params
. 挂钩函数将接收一个参数:一个边栏参数数组,包括before_widget
和after_widget
和widget_name
这将是您传递给的第二个参数parent::__construct
当你register the widget. 类似这样:
<?php
add_filter(\'dynamic_sidebar_params\', \'wpse90953_sidebar_params\');
function wpse90953_sidebar_params($widget_params)
{
if (!empty($widget_params[\'widget_name\']) && \'your_widget_name\' === $widget_params[\'widget_name\']) {
$widget_params[\'before_widget\'] = \'<div style="clear:both"></div>\' . $widget_params[\'before_widget\'];
}
return $widget_params;
}