Painel de widgets não exibido no Personalizador de Tema

Estou usando o Personalizador de Tema para permitir que os usuários personalizem a aparência de seu site.

Eu notei no tema Twenty Fifteen que há um painel para Widgets. Eu já vi isso em alguns outros temas também, e o código para o painel não foi adicionado ao customizer.php (tanto quanto eu posso dizer)

No meu tema, eu tenho algumas barras laterais na página inicial. Você pode personalizar os widgets através dos menus Appearance > Widgets , no entanto, o painel Widgets no customizador não está sendo exibido.

Como posso fazê-lo mostrar no personalizador para que o usuário não precise mudar para mudar os widgets?

Meu código para registrar a barra lateral:

 function widgets_init_mysite() { register_sidebar( array( 'name' => __( 'Main Sidebar', 'mytheme' ), 'id' => 'sidebar-1', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); } add_action( 'widgets_init', 'widgets_init_mysite' );

Eu adiciono a barra lateral à página usando dynamic_sidebar( 'sidebar-1' )

É definitivamente exibido porque eu adicionei widgets através de Appearance > Widgets e eu posso vê-los no personalizador.

Nota: uma coisa interessante que encontrei. Registrei 5 barras laterais, com IDs da sidebar-1 , sidebar-2 etc. No Firefix, fui ao customizador do tema e inspecionou o elemento. Eu achei que o painel Widgets existia, mas tinha display: none . O que é mais interessante, na sub-navegação ul , havia 5 elementos li com a section-sidebar-widgets-sidebar-1 da class section-sidebar-widgets-sidebar-1 (o último número alterado para todas as barras laterais).

Verifiquei as outras seções que fiz, e a class sempre começou com a section- – e, em seguida, a identificação da seção. Eu tentei mudar o painel das barras laterais para o meu painel, assim:

$wp_customize->get_section( 'sidebar-widgets-sidebar-1' )->panel = 'my-panel';

Mas nada aconteceu. Isso é estranho porque eu sei muito, definitivamente, saber os nomes das seções da barra lateral, mas mudar seu painel não faz nada …

Solutions Collecting From Web of "Painel de widgets não exibido no Personalizador de Tema"

Provavelmente você não está exibindo a barra lateral quando o cliente está ativo, o que evita que o costumizador detecte sua existência na página.

O costumizador detecta a barra lateral engatando vários ganchos relacionados à barra lateral que devem ser acionados quando a página é gerada. Se, por algum motivo, seu código de exibição de barra lateral não desencadeie os ganchos, o costumizador não saberá que existe mesmo se o conteúdo atual estiver sendo exibido. Isso pode acontecer, por exemplo, se você armazenar em cache sua barra lateral e, em vez de chamar dynamic_display você apenas dynamic_display a barra lateral.

Vejo que você está falando sobre a function dynamic_sidebar , mas não vejo você mencionar o arquivo da barra lateral (por exemplo, sidebar.php ou sidebar-single.php ).

Existem basicamente 3 etapas que eu vejo para exibir widgets da barra lateral e eles são sempre visíveis no customizador. Se o seu não está aparecendo, provavelmente você pode ter perdido alguma coisa.

1. A parte do registro em functions.php


 $args = array( 'name' => __( 'Main Sidebar', 'mytheme' ), 'id' => 'sidebar-1', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

' ); register_sidebar( $args );

2. A chamada de function em um arquivo de barra lateral (por exemplo, sidebar.php ou sidebar-single.php )


 < ?php // Dynamic Sidebar if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar-1') ) : // Sidebar fallback content get_sidebar(); endif; // End Dynamic Sidebar Single posts ?> 

3. Ligue para a barra lateral no modelo de publicação / página


< ?php get_sidebar(); ?> < ?php get_sidebar(); ?> ou < ?php get_sidebar('single'); ?> < ?php get_sidebar('single'); ?> para sidebar-single.php

Eu recomendaria que você voltasse a verificar seu código para ter certeza de que você não deixou nada. Muito bem sucedida!