wp_get_sidebars_widgets()
Получает список всех сайдбаров (панелей виджетов) и список всех виджетов в этих сайдбарах.
Использует глобальные переменные $_wp_sidebars_widgets, $sidebars_widgets
Использует опцию sidebars_widgets
Эта функция считается внутренней для использования самим ядром. Не рекомендуется использовать эту функцию в своем коде.
Хуки из функции
Возвращает
Массив
. Ассоциативный массив, где в ключе находится ID панели виджетов (сайдабар), а в значении массив со всеми виджетами из каждой панели, включая панель с неактивными виджетами.
Использование
wp_get_sidebars_widgets( $deprecated = true );
- $deprecated(логический)
- Не используется. Параметр отменен.
По умолчанию: true
Примеры
#1 Что возвращает функция
$wg = wp_get_sidebars_widgets(); /* $wg Array ( [wp_inactive_widgets] => Array ( [0] => text-8 [1] => text-5 ) [sidebar] => Array ( [0] => democracy-2 [0] => text-1 ) ) */
#2 Посчитаем количество виджетов в сайдбаре
Допустим, нам нужно сделать что-либо в зависимости от того, сколько виджетов находится в панели. Например, есть горизонтальный сайдбар, в который можно добавить произвольное количество виджетов. Нужно в зависимости от их количества каждому из них устанавливать разный css класс.
Например, если виджет в сайдбаре один, то col-lg-12. Если два - то col-lg-6.
Для этого узнаем название нужного сайдбара, допусти оно sidebar_horizontal.
$wg = wp_get_sidebars_widgets(); $myid = 'sidebar_horizontal'; // нужный нам сайдбар существует if( isset($wg['sidebar_horizontal']) ){ $wgcount = count($wg[$myid]); $class = 'col-lg-12'; if( $wgcount == 2 ) $class = 'col-lg-6'; elseif( $wgcount == 3 ) $class = 'col-lg-4'; elseif( $wgcount == 4 ) $class = 'col-lg-3'; // ставим класс через хук add_filter('dynamic_sidebar_params', function($param) use($class){ foreach( $param as & $data ){ if( $data['id'] == $myid ){ $data['before_widget'] = str_replace('class="','class="'. $class .' ', $data['before_widget'] ); } } return $param; }); } // выводим виджеты dynamic_sidebar('sidebar');
Заметки
- Global. Массив. $_wp_sidebars_widgets
- Global. Массив. $sidebars_widgets
Список изменений
С версии 2.2.0 | Введена. |