wp_unregister_sidebar_widget() WP 2.2.0

Видаляє раніше зареєстрований віджет за надісланим ID віджетом.

  • Ця функція видаляє віджет в адмін-панелі, якщо викликати її у файлі теми functions.php .
  • ID віджету можна дізнатися, подивившись атрибут id блоку віджету в адмін панелі. Наприклад, блок віджету з ID "your_widget_1"матиме такий атрибут: id="widget-17_your_widget_1". Блок якогось іншого віджету матиме подібнийid="widget-18_my_widget"

Хуки з функції

Повертає

null. Нічого не вертає.

Використання

wp_unregister_sidebar_widget($id);
$id
(рядок) (обов’язковий)
ID віджету. ID вказується під час реєстрації віджету функцією:
wp_register_sidebar_widget() .

Приклади

0

#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 6.0.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 );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *