Widgets não exibidos no customizador de temas

3

Estou desenvolvendo um novo tema e estou usando várias barras laterais neste tema. Tudo funciona bem, mas os widgets não estão aparecendo na seção customizador de temas. Todos os widgets estão funcionando bem na seção "aparência - > widgets", mas não em "aparência - > personalizar". Eu estou usando o wordpress 3.9.1.

Foi assim que eu os declarei em functions.php

if(function_exists('register_sidebar'))
 {

    register_sidebar ( array (
            'name' => 'Widget Area 1',
            'id' => 'widget-1',
            'description' => 'Widget Area 2.',
            'before_widget' => '<div id="%2$s" class="widget %2$s">',
            'after_widget' => '</div>',
            'before_title' => '<h3>',
            'after_title' => '</h3>' ,
    ) );



    register_sidebar ( array (
            'name' => 'Widget Area 2',
            'id' => 'widget-2',
            'description' => 'Widget Area 2.',
            'before_widget' => '<div id="%2$s" class="widget %2$s">',
            'after_widget' => '</div>',
            'before_title' => '<h3>',
            'after_title' => '</h3>' ,
    ) );


    register_sidebar ( array (
            'name' => 'Widget Area 3',
            'id' => 'widget-3',
            'description' => 'Widget Area 3.',
            'before_widget' => '<div id="%2$s" class="widget %2$s">',
            'after_widget' => '</div>',
            'before_title' => '<h3>',
            'after_title' => '</h3>' ,
    ) );

    register_sidebar ( array (
            'name' => 'Widget Area 4',
            'id' => 'widget-4',
            'description' => 'Widget Area 4.',
            'before_widget' => '<div id="%2$s" class="widget %2$s">',
            'after_widget' => '</div>',
            'before_title' => '<h3>',
            'after_title' => '</h3>' ,
    ) );

}

E é assim que eu os chamo.

<?php
    if (! function_exists ( 'dynamic_sidebar' ) || ! dynamic_sidebar ( 'Widget Area 1' )) :

endif;?>

Ele está aparecendo bem quando eu tenho uma área de widget, mas assim que eu adiciono várias, ela desaparece do personalizador.

    
por AKR 11.06.2014 / 09:13

6 respostas

9

Widgets DO aparecem no Customizador, mas somente se você estiver na página em que eles são usados.

Por exemplo, eu tenho uma barra lateral para a página Arquivo. Quando estou no personalizador e na página inicial, essa barra lateral não aparece. Mas se eu navegar para uma página de arquivo enquanto estiver no personalizador, ela aparecerá na área do widget.

    
por Matt Cromwell 16.12.2014 / 08:39
1

Eu sei que você perguntou isso há muito tempo, mas eu só tive o mesmo problema e, finalmente, descobri o problema. No meu arquivo functions.php , eu tinha registrado jquery ( wp_deregister_script('jquery') ). Isso aparentemente faz com que os widgets não funcionem no personalizador, mesmo que minha página ainda esteja carregando o jquery (por meio de wp_enqueue_script ).

Para corrigir o problema (supondo que você esteja tendo o mesmo problema que eu), é necessário registrar novamente o jquery chamando wp_register_script('jquery', ('url_to_jquery'), false, '1.11.1'[or whatever your jquery version is]) .

    
por manwill 22.01.2015 / 23:24
0

Em vez disso, o widget nunca será chamado pelo nome ou por ID.

Por favor, verifique sidebar.php ou footer.php onde você gostaria de mostrar seu widget é que a ID da barra lateral que você registrou na página functions.php é a mesma ou não.

Se você usa seu ID de widget 'something' em functions.php e 'something-else' em que você gostaria de mostrar que seu widget apareceu do que nada funcionou!

Exemplo:

Se você registrar seu widget em functions.php usando a "barra lateral da página", deverá chamar seu widget usando <?php dynamic_sidebar( 'page-sidebar' ); ?> em sua página da barra lateral ou rodapé.

    
por Ariful Islam Shaon 11.06.2014 / 09:38
0

@PieterGoosen está correto, em dynamic_sidebar ( 'Widget Area 1' )) você está chamando o nome, não o ID, que é widget-1.

Tente usar o ID.

    
por jose_nation 10.02.2015 / 19:24
0

Esta é a solução real para o seu problema: Tudo o que você precisa fazer é certificar-se de adicionar essa função ao rodapé e antes da tag de fechamento </body> :

<?php wp_footer();?>

verifique também se você tem <?php wp_header();?> antes de </head> tag. Espero que esta ajuda

    
por shadi 30.07.2017 / 07:27
-2

Encontrei este problema e resolvi-o. Por favor, abra o seu navegador para o console, é claro que há um erro de javascript. corrigido o erro e os widgets mostrados

    
por flowerszhong 08.04.2016 / 18:32