WP_GET_SIDEBARS_WIDGETS() │ WP 2.2.0
Функция wp_get_sidebars_widgets() позволяет получить полный список боковых панелей (сайдбаров) и идентификаторов виджетов, которые в них находятся.
Эта функция обновляет список виджетов боковой панели, если это необходимо, и также сохраняет обновленный список.
Важно: Это внутренняя функция, предназначенная для использования только в ядре WordPress. Рекомендуется не использовать её в своём коде.
Использование функции
Определение функции
wp_get_sidebars_widgets( $deprecated );
Параметры:
$deprecated(true|false) — параметр устарел и не используется.- Значение по умолчанию:
true
- Значение по умолчанию:
Пример использования
$wg = wp_get_sidebars_widgets();
Возвращаемое значение
Функция возвращает массив. При вызове из админки, возвращается обновленный список виджетов в формате версии 3.
Пример 1: Что возвращает функция
$wg = wp_get_sidebars_widgets();
/* $wg
Array
(
[wp_inactive_widgets] => Array
(
[0] => text-8
[1] => text-5
)
[sidebar] => Array
(
[0] => democracy-2
[1] => text-1
)
)
*/
Пример 2: Подсчет количества виджетов в боковой панели
Предположим, что нам нужно что-то сделать в зависимости от того, сколько виджетов в панели. Например, в горизонтальной боковой панели можно добавить разное количество виджетов. Нам нужно установить разные CSS классы для каждого в зависимости от их количества.
Если в боковой панели один виджет, то класс будет col-lg-12. Если два — col-lg-6.
Для этого определим имя нужной боковой панели, например, sidebar_horizontal.
$wg = wp_get_sidebars_widgets();
$myid = 'sidebar_horizontal';
// Проверяем, существует ли нужная боковая панель
if (isset($wg[$myid])) {
$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');
Важные заметки
- Глобальная переменная:
$_wp_sidebars_widgets - Глобальная переменная:
$sidebars_widgets
Изменения
- С версии 2.2.0 функция была введена.
Связанные функции
dynamic_sidebar()— отображает виджеты в боковой панели.is_active_sidebar()— проверяет, активна ли боковая панель.is_active_widget()— проверяет, активен ли виджет.register_sidebar()— регистрирует боковую панель.register_widget()— регистрирует виджет.
Эти функции помогут вам управлять боковыми панелями и виджетами на вашем сайте WordPress более эффективно.