问题描述

我有多个”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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。