Как удалить ранее существующую настройку настройщика?

Ответы:

16

Поздно на вечеринку, но это сделает свое дело:

$wp_customize->remove_control('blogdescription');

Вы хотите удалить только этот элемент управления, а не весь раздел, как предложено выше.

Natko
источник
1
Настройка также должна быть удалена: $ wp_customize-> remove_setting ('blogdescription')
mimarcel
Будет ли это также удалить любое сохраненное значение, которое в настоящее время там? У меня возникла проблема, из-за которой я хочу удалить существующие настройки / элементы управления, в которых есть существующие данные, но данные по-прежнему возвращаются. wordpress.stackexchange.com/questions/329343/…
Ли
10

Удалите существующую настройку настройщика в теме WordPress с этим кодом.

введите описание изображения здесь

add_action( "customize_register", "ruth_sherman_theme_customize_register" );
function ruth_sherman_theme_customize_register( $wp_customize ) {

 //=============================================================
 // Remove header image and widgets option from theme customizer
 //=============================================================
 $wp_customize->remove_control("header_image");
 $wp_customize->remove_panel("widgets");

 //=============================================================
 // Remove Colors, Background image, and Static front page 
 // option from theme customizer     
 //=============================================================
 $wp_customize->remove_section("colors");
 $wp_customize->remove_section("background_image");
 $wp_customize->remove_section("static_front_page");

}
Крупал Патель
источник
5

Я узнал, что в классе WP_Customize_Manager есть функция с именем remove_section(). В вашей функции подключен customize_registerвы можете просто сделать:

    $wp_customize->remove_section('nav');
    $wp_customize->remove_section('static_front_page');

Вы можете найти идентификатор секции (то есть 'nav'), если осмотрите строку заголовка аккордеона секции. Посмотрите на идентификатор содержащего <li>тега, и это часть строки после "customize-section-". IE:

<li id="customize-section-static_front_page" class="control-section customize-section">

- идентификатор "static_front_page"

Джессика
источник
Это выглядит лучше, чем мое решение, поэтому я дам вам галочку - я не проверял это, но я полагаю, у вас есть ... Я не получаю title_tagline - конечно, он должен сказать static_front_page, это опечатка BAC?
byronyasgur
@byronyasgur Да, это была ошибка копирования пасты, исправленная сейчас. Благодарность!
Джессика
На самом деле, это не правильный ответ. Это удаляет весь раздел, который содержит как заголовок сайта, так и слоган. Вопрос задает только слоган. Посмотрите на ответ ниже @byronyasgur
BFTrick
2

По ОТТО

И последнее, что вы можете добавить в раздел - это опция «theme_supports». Это заставит меню не появляться, если тема не поддерживает что-то. Если вы помещаете этот код в саму тему, то вы уже знаете, что она поддерживает, поэтому в этом нет особого смысла. Ядро использует это, чтобы не показывать параметры заголовка и фона, если тема не поддерживает их.

Так что я положил это вместе с

    $wp_customize->get_setting('blogdescription')->transport='postMessage';

... и обнаружил, что следующий код работает. Я вставил falseдля theme_supports ... не уверен, что я действительно должен вставлять ... может быть, кто-то немного более опытный может улучшить это.

    $wp_customize->add_control('blogdescription')->theme_supports=false;
byronyasgur
источник
1

Если секция / панель или ядро ​​управления, всегда лучше их отключить вместо удаления.

add_action( 'customize_register', 'wp_stackexchange_58932' );
function wp_stackexchange_58932($wp_customize){
    $wp_customize->get_section( 'static_front_page' )->active_callback = '__return_false';
    $wp_customize->get_section( 'custom_css' )->active_callback = '__return_false';
}
Прафулла Кумар Саху
источник
1
Отличный совет, я использовал его, чтобы всегда показывать настройку static_front_page, даже если страницы нет (по умолчанию она отображается только при наличии страницы на сайте)
Larzan
0

Если вы используете это в плагине, вы должны использовать приоритетный аргумент, такой как 999, и он будет работать в плагине.

add_action( "customize_register","wpcb_theme_customize_register",999,1);    

function wpcb_theme_customize_register($wp_customize){
   $wp_customize->get_setting('blogdescription')->transport='postMessage';
}
Рави Шакья
источник