unregister_sidebar()
Отменяет регистрацию ранее зарегистрированной панели виджетов (сайдбара).
Используйте функцию, когда необходимо скрыть лишние виджет-зоны, зарегистрированные темой или плагином, — например, в дочерней теме.
Вызывать лучше на хуке widgets_init с приоритетом побольше (позже), например 99, к моменту вызова все регистрации уже были проедены.
Удалённый sidebar больше недоступен в админке «Внешний вид → Виджеты», но его содержимое не удаляется из базы — при повторной регистрации оно появится снова.
Хуков нет.
Возвращает
null. Ничего не возвращает.
Использование
unregister_sidebar( $sidebar_id );
- $sidebar_id(строка) (обязательный)
- ID панели, которую нужно отменить. ID указывается при регистрации панели.
Примеры
#1 Пример использования функции
Если добавить этот код в functions.php, то зарегистрированные для TwentyTen темы сайдбары в подвале будут отменены:
function remove_some_widgets(){
// Отменим регистрацию некоторых панелей виджетов
unregister_sidebar( 'first-footer-widget-area' );
unregister_sidebar( 'second-footer-widget-area' );
unregister_sidebar( 'third-footer-widget-area' );
unregister_sidebar( 'fourth-footer-widget-area' );
}
add_action( 'widgets_init', 'remove_some_widgets', 11 );
В примере, мы установили приоритет 11 на хук widgets_init, потому что functions.php дочерней темы подключается раньше чем у основной. А это значит, что если оставить поле пустым, приоритет будет 10 и отмены виджетов не произойдет.
Изменяя приоритет нашего хука, мы можем быть уверены, что он будет вызван после того, как functions.php файл родительской темы будет загружен.
Заметки
- Global. Массив.
$wp_registered_sidebarsThe registered sidebars.
Список изменений
| С версии 2.2.0 | Введена. |
Код unregister_sidebar() unregister sidebar WP 6.9.1
function unregister_sidebar( $sidebar_id ) {
global $wp_registered_sidebars;
unset( $wp_registered_sidebars[ $sidebar_id ] );
}