Como remover itens e seções do Personalizador do WordPress?

Quando criamos um tema personalizado, não raro temos opções presentes no Personalizador do WordPress (Theme Customizer) que serão ignoradas e não produzirão resultado prático no visual do sítio. Sendo assim, é mais conveniente que essas opções sejam removidas, já que poderão confundir o usuário.

Para começar, a classe que gerencia tudo que envolve o Personalizador se chama WP_Customize_Manager e o objeto criado em execução é $wp_customize.

Há 4 tipos de objetos no Personalizador: Panels (painéis), Sections (seções), Settings (Configurações/Ajustes) e Controls (controles). Neste artigo, vamos ver os dois primeiros.

Quando entramos no Personalizador temos um monte de linguetas/abas. Elas podem ser ou uma seção ou um painel, que contêm os diversos controles para se manipular as configurações.

Quando usamos uma seção ela só permite adicionar controles dentro dela. “Identidade do site” e “Cores” são itens implementados como uma seção.

Já um painel permite que se adicione seções dentro dele. “Menus” e “Widgets” são itens implementados como um painel.

Vamos ver a lista de seções e painéis presentes no WordPress:

TítuloTipoIDOrdem
Identidade do siteseçãotitle_tagline20
Coresseçãocolors40
Imagem do cabeçalhoseçãoheader_image60
Imagem de fundoseçãobackground_image80
Menuspainelnav_menus100
Widgetspainelwidgets110
Configurações da página inicialseçãostatic_front_page120
CSS adicionalseçãocustom_css200

Para se remover uma seção, usamos o método remove_section. Para remover um painel, o método remove_panel.

Finalmente, vamos a um exemplo de código. Cria um plugin ou adiciona este trecho no arquivo functions.php do teu tema:

function remove_itens_personalizador( $wp_customize ) {
  // Remove a seção "Imagem de fundo"
  $wp_customize->remove_section( 'background_image');
  // Remove o painel "Menus"
  $wp_customize->remove_panel( 'nav_menus');
  // Remove a seção "CSS adicional".
  $wp_customize->remove_section( 'custom_css');
}
add_action( 'customize_register', 'mytheme_customize_register',50 );

Simples, não? É isso.

Se tens algo a acrescentar ou tens alguma dúvida, comenta aí embaixo para a gente trocar uma ideia.

Até o próximo!