我有多个“侧边栏”,但并非所有的都是相同大小的。并非所有的小部件都适合所有侧栏(例如,我有一个“页脚侧栏”,客户端可以在其中放置自定义小部件,但它们很宽,根本不适合“真实”侧栏)。我想给出一个指示,当一个小部件被放置在一个不属于它的侧栏中时(例如,更改标题文本的颜色)。最好的方法是什么?
是否将小工具限制为特定的侧边栏?
我用一些CSS解决了这个问题,类似于我的解题技巧highlight my own widgets. 侧栏放置区域为div
\'s与班级一起widgets-sortable
他们有id
侧边栏的。您的小部件是div
\'s带类widget
, 和id
表格的widget-[global_counter]_[widget_key]-[widget_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;
}
有一个widget\\u display\\u回调挂钩,您可以使用它根据边栏和小部件覆盖小部件(不适当时返回false):
http://core.trac.wordpress.org/browser/trunk/wp-includes/widgets.php?rev=15590#L180
我可能会定义我自己的小部件区域,在管理区域中获取放入其中的任何小部件,并且只将该小部件区域放在主题中的特定位置。