¿Cómo eliminar una configuración preexistente del personalizador?

19 jul 2012, 01:03:34
Vistas: 22.5K
Votos: 18

Mi tema no utiliza la línea de descripción (tagline), ¿cómo puedo eliminarla del personalizador?

0
Todas las respuestas a la pregunta 6
2
20

Llegué tarde a la fiesta, pero esto hará el truco:

$wp_customize->remove_control('blogdescription');

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

12 feb 2013 14:50:49
Comentarios

La configuración también debería eliminarse: $wp_customize->remove_setting('blogdescription')

mimarcel mimarcel
12 nov 2018 22:57:22

¿Esto también eliminará cualquier valor almacenado actualmente? Tengo un problema donde quiero eliminar configuraciones/controles existentes que tienen datos, pero los datos siguen siendo recuperados. https://wordpress.stackexchange.com/questions/329343/why-is-remove-setting-and-remove-control-not-working

Lee Lee
20 feb 2019 13:35:58
0
12

Elimina una configuración personalizada existente en el personalizador de temas de WordPress con este código.

Eliminar configuración del personalizador de temas

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

 //=============================================================
 // Eliminar la opción de imagen de encabezado y widgets del personalizador de temas
 //=============================================================
 $wp_customize->remove_control("header_image");
 $wp_customize->remove_panel("widgets");

 //=============================================================
 // Eliminar las secciones de Colores, Imagen de fondo y Página frontal estática
 // del personalizador de temas     
 //=============================================================
 $wp_customize->remove_section("colors");
 $wp_customize->remove_section("background_image");
 $wp_customize->remove_section("static_front_page");

}
6 may 2015 20:26:37
3

Descubrí que la clase WP_Customize_Manager tiene una función llamada remove_section(). En tu función enganchada a customize_register puedes simplemente hacer:

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

Puedes encontrar el ID de la sección (por ejemplo 'nav') si inspeccionas la barra de título del acordeón de la sección. Mira el ID de la etiqueta <li> que la contiene y es la parte de la cadena después de "customize-section-". Por ejemplo:

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

-- el ID es "static_front_page"

24 ago 2012 01:42:40
Comentarios

Eso se ve mejor que mi solución, así que te daré el visto bueno - no lo he probado pero supongo que tú sí... No entiendo lo de title_tagline, seguro que debería decir static_front_page, ¿es un error tipográfico BAC?

byronyasgur byronyasgur
24 ago 2012 04:29:04

@byronyasgur sí, fue un error al copiar y pegar, ya está corregido. ¡Gracias!

jessica jessica
24 ago 2012 04:32:11

En realidad, esta no es la respuesta correcta. Esto elimina la sección completa que contiene tanto el título del sitio como el eslogan. La pregunta es sobre eliminar solo el eslogan. Mira la respuesta de abajo de @byronyasgur

BFTrick BFTrick
15 nov 2012 03:13:40
0

De acuerdo con OTTO

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

Así que junté eso con

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

... y descubrí que el siguiente código funcionó. Puse false en theme_supports ... no estoy seguro de lo que realmente debería poner ahí ... tal vez alguien un poco más experto pueda mejorar esto.

    $wp_customize->add_control('blogdescription')->theme_supports=false;
19 jul 2012 01:08:37
1

Si la sección / panel o control es del núcleo, siempre es mejor desactivarlos 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';
}
21 feb 2017 17:48:16
Comentarios

Excelente consejo, lo usé para mostrar siempre la configuración static_front_page, incluso si no hay una página (por defecto solo se muestra cuando existe una página en el sitio)

Larzan Larzan
4 oct 2019 13:38:59
1

Si estás usando esto en un plugin, deberías usar el argumento de prioridad como 999 y funcionará en el plugin.

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 sept 2016 18:33:37
Comentarios

+1 para prioridad > 10. En mi caso cambié el personalizador por un tema hijo. Sin establecer la prioridad, $wp_customize->get_setting() devolverá null ya que esta función parece llamarse antes de que el tema padre cree la configuración.

Fil Fil
6 feb 2020 23:35:02