Intereting Posts
Отображать данные на той же странице, что и форма без обновления. Поиск любых изображений в медиа-библиотеке отображает «нет носителя» Запросить последние сообщения из нескольких категорий как я могу добавить тег «читать больше» непосредственно в шаблоне? Ограничить доступ пользователей к нескольким сайтам для не назначенных блогов Скопируйте ценовые категории в настраиваемое поле Совместимость с установками RTL Дублированные сообщения Показать последние сообщения на другом сайте Только пользователь роли пользователя может комментировать не другие Показать глобальное сообщение в профилях пользователя только с администратором Поле ввода в WordPress Backend Custom Excerpt возвращает 52 символа, а не 52 слова Переключение MultiSite с HTTP на HTTPS WordPress AJAX в header.php связанные сообщения – вытягивание тегов из определенного типа сообщения

Как определить родительский контейнер текущего виджета (идентификатор виджета боковой панели)

У меня есть несколько пользовательских виджетов, которые установлены как часть моей темы. Я хотел бы выполнить условный код внутри каждой панели администратора виджета (а не публичную сторону, меня просто интересует панель администратора внутри формы функции ($ intance)), в зависимости от того, на какой боковой панели вставлен виджет.

Как получить ссылку на текущий идентификатор боковой панели, который содержит виджет, из обработчика формы ($ instance) виджета?

Solutions Collecting From Web of "Как определить родительский контейнер текущего виджета (идентификатор виджета боковой панели)"

Если ваши виджеты используют API-интерфейс виджетов, в вашем классе виджетов должен быть следующий метод …

function widget($args, $instance){ //output html here... } 

$args['id'] будет содержать идентификатор текущей боковой панели.

Если ваша боковая панель имеет имя, вы можете получить имя боковой панели, используя get_sidebar( $name )

внутри самого виджета попробуйте следующее:

 global $wp_registered_widgets, $wp_registered_sidebars; $sidebars_widgets = get_option('sidebars_widgets'); if($sidebars_widgets["sidebar-1"]) echo 'hooray'; 

Боюсь, нет простого способа сделать это с WP 3.2. В общем, экран администратора виджетов не очень расширяем.

Вам просто нужно сделать два класса виджета и проинструктировать пользователей, куда их поместить.