WP_UNREGISTER_SIDEBAR_WIDGET: удаление виджетов по ID │ WP 2.2.0

# WP_UNREGISTER_SIDEBAR_WIDGET() │ WP 2.2.0

Функция WP_UNREGISTER_SIDEBAR_WIDGET позволяет удалить виджет по его идентификатору (ID).

## Что делает эта функция

* При использовании этой функции в файле functions.php вашей темы, виджет также будет удалён из панели "Внешний вид -> Виджеты".

* Вы можете узнать ID виджета по атрибуту id, который находится в панели виджетов. Например, у виджета с ID your_widget_1 будет атрибут id="widget-17_your_widget_1". Для виджета с другим ID, например my_widget, атрибут будет id="widget-18_my_widget".

## Использует

- wp_unregister_widget_control()
- wp_register_sidebar_widget()

## Хуки, используемые в функции

- wp_unregister_sidebar_widget

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

- null. Ничего (null).

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

```php
wp_unregister_sidebar_widget( $id );

Параметры

  • $id (int/string) (обязательный) — ID виджета, который был указан при регистрации виджета с помощью функции wp_register_sidebar_widget().

Примеры

1. Отключение (удаление) конкретного виджета на всех страницах категорий

Допустим, мы зарегистрировали виджет my_widget в файле functions.php, используя функцию wp_register_sidebar_widget():

function my_widget_display(){
    // Вывод виджета
}

wp_register_sidebar_widget(
    'my_widget',          // ID виджета
    'Мой виджет',         // Название виджета
    'my_widget_display',  // Обратный вызов для вывода виджета
);

Мы добавили этот виджет в правую боковую панель. Эта боковая панель вызывается в файле sidebar.php следующим образом:

Теперь, чтобы отключить my_widget на всех страницах категорий, нам нужно добавить следующий код перед отображением боковой панели:

Полный код будет выглядеть так:

Изменения

С версии 2.2.0 — введена функция.

Код функции WP_UNREGISTER_SIDEBAR_WIDGET

Файл wp-includes/widgets.php:

function wp_unregister_sidebar_widget( $id ) {
    /**
     * Срабатывает перед удалением виджета из боковой панели.
     *
     * @since 3.0.0
     *
     * @param int|string $id ID виджета.
     */
    do_action( 'wp_unregister_sidebar_widget', $id );

    wp_register_sidebar_widget( $id, '', '' );
    wp_unregister_widget_control( $id );
}

Связанные функции с боковыми панелями (виджетами)

  • dynamic_sidebar()
  • is_active_sidebar()
  • is_active_widget()
  • is_dynamic_sidebar()
  • is_registered_sidebar()
  • register_sidebar()
  • register_sidebars()
  • register_widget()
  • the_widget()
  • unregister_sidebar()
  • unregister_widget()
  • wp_get_sidebars_widgets()
  • wp_register_sidebar_widget()
  • wp_register_widget_control()
  • WP_Widget_Archives()
  • wp_widgets_init()

Leave a Reply

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