Obtém todas as secções do customizador de temas wp registadas?

4

Existe uma maneira de recuperar todas as seções customizadas registradas? Estou criando um personalizador personalizado e não quero que outros plug-ins ou temas que registrem seções personalizadas apareçam nesta página.

Eu posso remover todas as seções padrão, mas não posso prever quais plug-ins ou temas registrarão seções.

$wp_customize->remove_section( 'title_tagline' );

remove a seção padrão title_tagline.

Eu posso ver todas as seções registradas fazendo print_r( $wp_customize ); . Gostaria apenas de fazer um loop sobre essa seção e construir uma matriz para cancelar o registro, mas parece que não consigo acessar a matriz de seções registradas, pois ela está protegida.

Existe alguma outra maneira de recuperar as seções registradas?

    
por EHerman 22.06.2015 / 18:50

2 respostas

2

Depois de vasculhar alguns arquivos principais, pude resolver isso de verdade.

A função a seguir recuperará todas as seções registradas no personalizador e fará um loop sobre cada uma delas para cancelar o registro delas completamente.

Isso deve acontecer antes de registrar suas próprias seções personalizadas, para não remover suas seções registradas personalizadas.

function eherman_remove_registered_customizer_sections() {
    // retrieve the sections array
    $registered_sections = $wp_customize->sections();
    // loop over and remove each section
    foreach( $registered_sections as $section ) {
       $wp_customize->remove_section( $section->id );
    }   
}

Nada mal mesmo. Espero que isso ajude os outros a se aproximarem de um personalizador mais poderoso!

Recursos:

por EHerman 22.06.2015 / 19:13
2

Já experimentou o método sections ? Você pode usar $wp_customize->sections() .

Exemplo:

foreach ($wp_customize->sections() as $section_key => $section_object ) {
  echo $section_key . '<br />';
}
    
por Nilambar 22.06.2015 / 19:20