Проверка динамической боковой панели в WordPress – is_dynamic_sidebar()

# IS_DYNAMIC_SIDEBAR() │ WP 2.2.0

Функция is_dynamic_sidebar() проверяет, включена ли динамическая боковая панель и используется ли она темой.

Для получения дополнительной информации о данной функции и других подобных функциях тем можно ознакомиться с разделом о **Условных тегах** в [документации разработчиков тем WordPress](https://developer.wordpress.org/themes/basics/conditional-tags/).

## Возвращаемое значение

- true | false: возвращает true, если используются виджеты, и false в противном случае.

## Использование

```php
is_dynamic_sidebar();

Примеры использования

Пример 1: Проверка наличия виджетов

Вывод текста, если тема поддерживает виджеты:

if ( is_active_sidebar( 'left-sidebar' ) ) : ?>
    



    

Пример 2: Проверка наличия боковой панели

При подключении виджета к теме вам может понадобиться проверить наличие хотя бы одной боковой панели. Если вы не настроите приоритет для действия widgets_init, то ваша функция может выполниться, прежде чем будет зарегистрирована хотя бы одна боковая панель:

add_action( 'widgets_init', 'widget_init_my_widget', 999 );

Примечания

  • Глобальный массив: $wp_registered_widgets — зарегистрированные виджеты.
  • Глобальный массив: $wp_registered_sidebars — зарегистрированные боковые панели.

Изменения

  • С версии 2.2.0: Функция была добавлена.

Код функции is_dynamic_sidebar()

function is_dynamic_sidebar() {
    global $wp_registered_widgets, $wp_registered_sidebars;

    $sidebars_widgets = get_option( 'sidebars_widgets' );

    foreach ( (array) $wp_registered_sidebars as $index => $sidebar ) {
        if ( ! empty( $sidebars_widgets[ $index ] ) ) {
            foreach ( (array) $sidebars_widgets[ $index ] as $widget ) {
                if ( array_key_exists( $widget, $wp_registered_widgets ) ) {
                    return true;
                }
            }
        }
    }

    return false;
}

Связанные функции

  • dynamic_sidebar(): выводит содержимое боковой панели.
  • is_active_sidebar(): проверяет, активна ли боковая панель.
  • is_active_widget(): проверяет, активен ли виджет.
  • is_registered_sidebar(): проверяет, зарегистрирована ли боковая панель.
  • register_sidebar(): регистрирует новую боковую панель.
  • wp_get_sidebars_widgets(): получает виджеты боковых панелей.

Используйте эти функции для более глубокого управления диаграммами виджетов и боковых панелей в вашей теме WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *