Intereting Posts
Оптимизация загрузки папки, а затем повторная загрузка? get_template_part возвращает NULL Как создать объект Quora или Stack Exchange без использования специализированной темы? Используемая тема WordPress вызывает высокую нагрузку на сервер на сервере Условные теги или несколько файлов Как добавить значок ожидания для ajax в WP frontend? Как получить URL-адрес изображения из media_sideload_image? Если дочерняя тема имеет одну и ту же строку параметров темы как родительскую, или должна ли она иметь собственную строку параметров? Где проверить базу PHPmyAdmin / SQL для субдомена Вторая инициализация ezSQL для MSSQL Динамически назначать одинаковый шаблон страницы дочерней странице как родительской Ограничить количество загруженных вложений определенного контекста Как получить последнюю выбранную настройку выравнивания медиа? Проблема с перенаправлением главной страницы HTML Переадресация с несколькими узлами wp-admin

Ограничить виджет определенной боковой панелью?

У меня есть несколько «боковых панелей», но не все из них имеют одинаковый размер. Не все виджеты подходят во всех боковых панелях (например, у меня есть «боковая панель нижнего колонтитула», где клиент может размещать пользовательские виджеты, но они широкие и совсем не подходят на «реальной» боковой панели). Я хочу дать указание, когда виджет размещен на боковой панели, где он не будет принадлежать (например, измените цвет текста заголовка). Какой был бы лучший способ сделать это?

Существует крючок widget_display_callback, который вы можете использовать для переопределения виджета на основе боковой панели и виджета (возвращайте false, когда это неуместно):

http://core.trac.wordpress.org/browser/trunk/wp-includes/widgets.php?rev=15590#L180

Я решил это с помощью CSS, похожего на мой трюк, чтобы выделить мои собственные виджеты . Области удаления боковой панели – это div с widgets-sortable класса widgets-sortable и они имеют id вашей боковой панели. Вашими виджетами являются div с виджетами класса и id widget формы widget-[global_counter]_[widget_key]-[widget_id] . Вы можете комбинировать их, чтобы выделить правильные или неправильные комбинации.

Например, у меня есть боковая панель под названием footer которая должна содержать только широкие виджеты. Эти виджеты распознаются, потому что их идентификатор включает в себя – -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; } 

Вероятно, я бы определил свои собственные области виджетов, которые вставляют туда все виджеты в область администрирования, и только помещают эту область виджетов в определенное место в теме.