отменить регистрацию боковой панели() в автономной теме не работает
С этим стековым потоком вопросов и ответов Я не могу заставить unregister_sidebar()
работать на меня.
Сценарий
Я разработал тему, используя область боковой панели, где я использовал виджет. Но я не хочу, чтобы "Редактор" получал доступ к этой расширенной области боковой панели в области администрирования. Поэтому я хочу внести изменения в мою тему functions.php
, где я ранее объявил register_sidebar()
где-нибудь, чтобы зарегистрировать боковую панель.
Я понял, что установка меньшего приоритета приведет к отмене регистрации функция более ранняя, поэтому я попробовал с помощью:
function site_unregister_sidebar() {
if ( is_admin() && current_user_can('editor') ) {
unregister_sidebar( 'my_custom_widget_area' );
}
}
add_action('widgets_init', 'site_unregister_sidebar', 1);
Но ничего не происходит.
- Что на самом деле я делаю не так?
- Есть ли какой-либо другой способ, которым я могу этого добиться?
1 answers
Спасибо Майло и Г.М. за то, что указали на главный ключ, как сказал Г.М.:
вы должны использовать более низкий приоритет, чем один запуск register_sidebar, но более низкий приоритет означает большее число.
Итак, окончательный код, который работает:
function site_unregister_sidebar() {
if ( is_admin() && current_user_can('editor') ) {
unregister_sidebar( 'my_custom_widget_area' );
}
}
add_action('widgets_init', 'site_unregister_sidebar', 20);
Потому что я установил свою боковую панель с приоритетом 10 с помощью того же крючка - widgets_init
.
function theme_widgets_init() {
register_sidebar( array (
'name' => 'Custom Widget Area',
'id' => 'my_custom_widget_area'
) );
}
add_action( 'widgets_init', 'theme_widgets_init', 10 );