Intereting Posts
Передача переменных запроса в шаблон пользовательской страницы Проблема с свойством объекта $ post_id Отключить Jetpack Публиковать в блоге, но сохранить для пользовательского типа сообщения Функция для установки типа продукта в Woocommerce Плагин расширенных пользовательских полей: как я могу получить изображение src path, загруженное из профиля пользователя? Перемещение блога и поддержание текущих постоянных ссылок Что это за код в footer.php моей темы, вызывающий предупреждения разрешения chmod? Скрыть php-уведомления в Dashboard Можно ли изменить пул по умолчанию? Всплывающая форма при входе на сайт с запросом на адрес электронной почты? Несколько блогов WordPress на одном хосте, используя 1 установку WordPress, используя несколько шаблонов Разница между мета-ключами с _ и без _ Как создать динамическое выпадающее меню на странице архива / срока по терминологии Meta? function_exists вызывает функцию function.php Импорт товаров Woocommerce

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

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

Solutions Collecting From Web of "Ограничить виджет определенной боковой панелью?"

Существует крючок 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; } 

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