Como removo uma configuração de personalizador preexistente?

Respostas:

16

Tarde para a festa, mas isso fará o truque:

$wp_customize->remove_control('blogdescription');

Você deseja remover apenas esse controle, não a seção inteira, conforme sugerido acima.

Natko
fonte
1
A configuração também deve ser removida: $ wp_customize-> remove_setting ('blogdescription')
mimarcel
Isso também removerá qualquer valor armazenado que está atualmente lá? Estou tendo um problema em que desejo excluir as configurações / controles existentes que possuem dados existentes, mas os dados ainda estão sendo chamados de volta. wordpress.stackexchange.com/questions/329343/…
Lee
10

Remova uma configuração do personalizador pré-existente no tema wordpress com este código.

insira a descrição da imagem aqui

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
fonte
5

Eu descobri a classe WP_Customize_Manager tem uma função chamada remove_section(). Em sua função ligada a customize_registervocê, basta fazer:

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

Você pode encontrar o ID da seção (por exemplo, 'nav') se inspecionar a barra de título de acordeão da seção. Veja o ID da <li>tag que contém e é a parte da string depois "customize-section-". IE:

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

- o ID é "static_front_page"

jessica
fonte
Parece melhor do que a minha solução, então vou lhe dar o tique-taque - ainda não testei, mas suponho que sim ... Não entendo a title_tagline - certamente deve dizer static_front_page, esse é um erro de digitação BAC?
Byronyasgur
@byronyasgur sim, foi um erro de cópia de pasta, corrigido agora. Obrigado!
Jessica
Na verdade, essa não é a resposta correta. Isso remove a seção inteira que contém o título e o slogan do site. A pergunta está pedindo apenas o slogan. Veja a resposta abaixo por @byronyasgur
BFTrick
2

Accoring to OTTO

Uma última coisa que você pode adicionar a uma seção é uma opção "theme_supports". Isso fará com que o menu não apareça, a menos que o tema suporte alguma coisa. Se você está colocando esse código em um tema em si, já sabe o que o tema suporta, portanto, não faz muito sentido. O núcleo usa isso para não mostrar as opções de cabeçalho e plano de fundo se o tema não as suportar.

Então eu coloquei isso junto com

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

... e descobriu que o código a seguir funcionava. Eu me falseinscrevi no theme_supports ... não sei o que realmente deveria estar colocando ... talvez alguém um pouco mais experiente possa melhorar isso.

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

se a seção / painel ou núcleo de controle, é sempre melhor desativá-los no lugar da remoção.

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
fonte
1
Grande dica, que eu usei para mostrar sempre a configuração static_front_page, mesmo se não houver uma página (por padrão, ele só mostra quando há uma página existente no site)
Larzan
0

Se você estiver usando isso em um plug-in, deverá usar o argumento de prioridade como 999 e ele funcionará no plug-in.

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
fonte