¿Cómo elimino una configuración de personalizador preexistente?

Respuestas:

16

Tarde a la fiesta, pero esto hará el truco:

$wp_customize->remove_control('blogdescription');

Desea eliminar solo ese control, no toda la sección como se sugirió anteriormente.

Natko
fuente
1
La configuración también debe eliminarse: $ wp_customize-> remove_setting ('blogdescription')
mimarcel
¿Esto también eliminará cualquier valor almacenado que esté actualmente allí? Tengo un problema en el que quiero eliminar la configuración / controles existentes que tienen datos existentes, pero los datos aún se están recuperando. wordpress.stackexchange.com/questions/329343/…
Lee
10

Elimine una configuración de personalizador preexistente en el tema de WordPress con este código.

ingrese la descripción de la imagen aquí

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");

}
krupal patel
fuente
5

Descubrí que la clase WP_Customize_Manager tiene una función llamada remove_section(). En su función enganchada customize_register, puede hacer:

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

Puede encontrar el ID de la sección (es decir, 'nav') si inspecciona la barra de título del acordeón de la sección. Mire la ID de la <li>etiqueta que contiene y es la parte de la cadena que sigue "customize-section-". ES DECIR:

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

- la identificación es "static_front_page"

jessica
fuente
Eso se ve mejor que mi solución, así que le daré la marca: no lo he probado, pero supongo que sí ... Sin embargo, no obtengo el título_tagline, seguramente debería decir static_front_page, ¿es un error tipográfico BAC?
byronyasgur
@byronyasgur sí, eso fue un error de copia de pasta, solucionado ahora. ¡Gracias!
Jessica
En realidad, esta no es la respuesta correcta. Esto elimina la sección completa que contiene el título y el eslogan del sitio. La pregunta es solo el eslogan. Mire la respuesta a continuación por @byronyasgur
BFTrick
2

De acuerdo con OTTO

Una última cosa que puede agregar a una sección es una opción de "theme_supports". Esto hará que el menú no aparezca a menos que el tema admita algo. Si está poniendo este código en un tema en sí, entonces ya sabe lo que admite el tema, por lo que no tiene mucho sentido. El núcleo usa esto para no mostrar las opciones de encabezado y fondo si el tema no los admite.

Así que puse eso junto con

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

... y descubrí que el siguiente código funcionó. Lo puse falsepara los apoyos del tema ... no estoy seguro de lo que realmente debería poner ... tal vez alguien un poco más experto pueda mejorar esto.

    $wp_customize->add_control('blogdescription')->theme_supports=false;
byronyasgur
fuente
1

si la sección / panel o núcleo de control, siempre es mejor deshabilitarlos en lugar de eliminarlos.

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';
}
Prafulla Kumar Sahu
fuente
1
Gran consejo, lo usé para mostrar siempre la configuración static_front_page, incluso si no hay página (por defecto solo se muestra cuando hay una página existente en el sitio)
Larzan
0

Si está usando esto en un complemento, debe usar un argumento de prioridad como 999 y funcionará en el complemento.

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

function wpcb_theme_customize_register($wp_customize){
   $wp_customize->get_setting('blogdescription')->transport='postMessage';
}
Ravi Shakya
fuente