wp_unregister_sidebar_widget()
Удаляет ранее зарегистрированный виджет по переданному ID виджета.
- Эта функция удаляет виджет и в админ-панели, если вызвать ее в файле темы functions.php.
- ID виджета можно узнать посмотрев атрибут id блока виджета в админ панели. Например, блок виджета с ID
"your_widget_1"
будет иметь такой атрибут:id="widget-17_your_widget_1"
. Блок какого-нибудь другого виджета будет иметь подобныйid="widget-18_my_widget"
Работает на основе: wp_unregister_widget_control(), wp_register_sidebar_widget()
Хуки из функции
Возвращает
null
. Ничего не возвращает.
Использование
wp_unregister_sidebar_widget( $id );
- $id(строка) (обязательный)
- ID виджета. ID указывается при регистрации виджета функцией: wp_register_sidebar_widget().
Примеры
#1 Отмена виджета
Задача: Нужно отменить определенный виджет на всех страницах типа is_category().
Решение: Предположим используя wp_register_sidebar_widget() в functions.php мы зарегистрировали виджет "my_widget", так:
function my_widget_display(){ // Вывод виджета } wp_register_sidebar_widget( 'my_widget', // ID виджета 'Мой виджет', // Заголовок виджета 'my_widget_display', // Функция обратного вызова );
Затем, мы добавили этот виджет в панель виджетов 'right-sidebar', где среди прочих виджетов выводится и наш виджет в боковой панели темы. Панель с виджетами выводим в sidebar.php так:
<ul id="sidebar"> <?php dynamic_sidebar( 'right-sidebar' ); ?> </ul>
Теперь, чтобы отключить виджет "my_widget" на всех страницах категорий, добавим следующий код перед выводом панели виджетов:
<?php wp_unregister_sidebar_widget( 'my_widget' ); ?> <ul id="sidebar"> <?php dynamic_sidebar( 'right-sidebar' ); ?> </ul>
Список изменений
С версии 2.2.0 | Введена. |
Код wp_unregister_sidebar_widget() wp unregister sidebar widget WP 6.5.2
function wp_unregister_sidebar_widget( $id ) { /** * Fires just before a widget is removed from a sidebar. * * @since 3.0.0 * * @param int|string $id The widget ID. */ do_action( 'wp_unregister_sidebar_widget', $id ); wp_register_sidebar_widget( $id, '', '' ); wp_unregister_widget_control( $id ); }