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

19 июл. 2012 г., 01:03:34
Просмотры: 22.5K
Голосов: 18

Моя тема не использует описание сайта (tagline), как можно удалить его из настройщика тем (customizer)?

0
Все ответы на вопрос 6
2
20

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

$wp_customize->remove_control('blogdescription');

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

12 февр. 2013 г. 14:50:49
Комментарии

Также следует удалить настройку: $wp_customize->remove_setting('blogdescription')

mimarcel mimarcel
12 нояб. 2018 г. 22:57:22

Удаляет ли это также сохраненное значение, которое там сейчас есть? У меня проблема: я хочу удалить существующие настройки/элементы управления, в которых есть данные, но эти данные по-прежнему вызываются. https://wordpress.stackexchange.com/questions/329343/why-is-remove-setting-and-remove-control-not-working

Lee Lee
20 февр. 2019 г. 13:35:58
0
12

Удаление предустановленных настроек кастомайзера в теме WordPress с помощью этого кода.

Удаление настроек кастомайзера

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

 //=============================================================
 // Удаление опции изображения шапки и виджетов из кастомайзера темы
 //=============================================================
 $wp_customize->remove_control("header_image");
 $wp_customize->remove_panel("widgets");

 //=============================================================
 // Удаление разделов "Цвета", "Фоновое изображение" и "Статическая главная страница"
 // из кастомайзера темы     
 //=============================================================
 $wp_customize->remove_section("colors");
 $wp_customize->remove_section("background_image");
 $wp_customize->remove_section("static_front_page");

}
6 мая 2015 г. 20:26:37
3

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

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

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

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

— здесь ID будет "static_front_page"

24 авг. 2012 г. 01:42:40
Комментарии

Это выглядит лучше, чем моё решение, поэтому я отмечу ваш ответ галочкой — я сам не тестировал, но полагаю, вы это сделали... Не понимаю насчёт title_tagline — разве там не должно быть static_front_page, это опечатка, BAC?

byronyasgur byronyasgur
24 авг. 2012 г. 04:29:04

@byronyasgur да, это была ошибка копирования, теперь исправлено. Спасибо!

jessica jessica
24 авг. 2012 г. 04:32:11

На самом деле, это неверный ответ. Данный код удаляет целый раздел, содержащий и название сайта, и слоган. Вопрос же касался только слогана. Посмотрите ответ ниже от @byronyasgur

BFTrick BFTrick
15 нояб. 2012 г. 03:13:40
0

Согласно OTTO

Последнее, что можно добавить в раздел — это опция "theme_supports". Это скроет меню, если тема не поддерживает определенную функцию. Если вы добавляете этот код в саму тему, то вы уже знаете, что поддерживает тема, поэтому это не имеет особого смысла. Ядро WordPress использует это, чтобы не показывать опции заголовка и фона, если тема их не поддерживает.

Поэтому я объединил это с

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

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

    $wp_customize->add_control('blogdescription')->theme_supports=false;
19 июл. 2012 г. 01:08:37
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';
}
21 февр. 2017 г. 17:48:16
Комментарии

Отличный совет, я использовал его, чтобы всегда отображать настройку static_front_page, даже если страницы нет (по умолчанию она показывается только при наличии существующей страницы на сайте)

Larzan Larzan
4 окт. 2019 г. 13:38:59
1

Если вы используете этот код в плагине, вам следует указать аргумент приоритета, например 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';
}
19 сент. 2016 г. 18:33:37
Комментарии

+1 за приоритет > 10. В моем случае я изменяю кастомайзер через дочернюю тему. Без установки приоритета $wp_customize->get_setting() вернет null, так как эта функция, похоже, вызывается до того, как родительская тема создает настройку.

Fil Fil
6 февр. 2020 г. 23:35:02