问题描述
我有多个”sidebars”,但并不是所有的都是相同的大小。并不是所有的小工具都适合所有的边栏 (例如,我有一个”footer sidebar”,客户端可以放置自定义小工具,但是它们很宽,并且根本不适合”real” 侧边栏) 。当窗口小工具放置在不属于的边栏中时,我想给出一个指示 (例如更改标题文本颜色) 。这样做最好的方法是什么?
最佳解决方案
有一个 widget_display_callback 钩子,您可以使用它来覆盖基于边栏和窗口小工具的窗口小工具 (返回 false 时不适当):
http://core.trac.wordpress.org/browser/trunk/wp-includes/widgets.php?rev=15590#L180
次佳解决方案
我使用一些 CSS 解决了它,类似于我对 highlight my own widgets 的伎俩。侧边栏下降区域是 div
,具有 widgets-sortable
类,并且它们具有您的侧边栏的 id
。您的小工具是 div
,具有 widget
类和 widget-[global_counter]_[widget_key]-[widget_id]
形式的 id
。您可以组合这些来突出显示正确或错误的组合。
例如,我有一个名为 footer
的侧栏,应该只包含宽的小工具。这些小工具是可识别的,因为它们的 ID 包括-wide-
。我想要这些绿色,所有其他的红色与罢工。
add_action('admin_print_styles-widgets.php', 'print_widget_hint_style');
function print_widget_hint_style()
{
echo <<<EOF
<style type="text/css">
/* Less specific rule for all widgets */
div.widgets-sortables[id*=-footer] div.widget .widget-title
{
color: red;
text-decoration: line-through;
}
/* More specific rule for correct widgets */
div.widgets-sortables[id*=-footer] div.widget[id*=-wide-] .widget-title
{
color: green;
}
</style>
EOF;
}
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。