wp_get_sidebars_widgets()
Отримує список усіх сайдбарів (панелей віджетів) та список усіх віджетів у цих сайдбарах.
Використовує глобальні змінні $_wp_sidebars_widgets , $sidebars_widgets
Використовує опцію sidebars_widgets
(дуже швидко) | 50000 разів – 3.69 сек
(швидко) |
PHP 7.1.1, WP 4.7.2
Хуки з функції
Повертає
Массив
. Асоціативний масив, де в ключі знаходиться 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 | Введено. |