問題描述
我有多個”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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。