Widgets nu apar în personalizatorul de teme
Dezvolt o temă nouă și folosesc mai multe bare laterale în această temă. Totul funcționează corect, dar widget-urile nu apar în secțiunea de personalizare a temei. Toate widget-urile funcționează corect în secțiunea "Aspect -> Widgets", dar nu în "Aspect -> Personalizează". Folosesc WordPress 3.9.1.
Așa le-am declarat în functions.php
if(function_exists('register_sidebar'))
{
register_sidebar ( array (
'name' => 'Zona de Widget 1',
'id' => 'widget-1',
'description' => 'Zona de Widget 1.',
'before_widget' => '<div id="%2$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>' ,
) );
register_sidebar ( array (
'name' => 'Zona de Widget 2',
'id' => 'widget-2',
'description' => 'Zona de Widget 2.',
'before_widget' => '<div id="%2$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>' ,
) );
register_sidebar ( array (
'name' => 'Zona de Widget 3',
'id' => 'widget-3',
'description' => 'Zona de Widget 3.',
'before_widget' => '<div id="%2$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>' ,
) );
register_sidebar ( array (
'name' => 'Zona de Widget 4',
'id' => 'widget-4',
'description' => 'Zona de Widget 4.',
'before_widget' => '<div id="%2$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>' ,
) );
}
Și așa le apelez în template.
<?php
if (! function_exists ( 'dynamic_sidebar' ) || ! dynamic_sidebar ( 'Zona de Widget 1' )) :
endif;
?>
Se afișează corect când am o singură zonă de widget, dar de îndată ce adaug mai multe, dispar din personalizator.
Widget-urile APAR în Customizer, dar doar dacă te afli pe pagina unde sunt utilizate.
De exemplu, am o bară laterală pentru pagina de Arhivă. Când sunt în Customizer și pe pagina principală, acea bară laterală nu apare. Dar dacă navighez către o pagină de arhivă în timp ce sunt în Customizer, atunci aceasta va apărea în zona de widget-uri.

Acesta este soluția reală la problema ta:
Tot ce trebuie să faci este să te asiguri că ai adăugat această funcție în footer și înainte de tag-ul de închidere </body>
:
<?php wp_footer();?>
De asemenea, asigură-te că ai <?php wp_head();?>
înainte de tag-ul </head>
. Sper că acest lucru te ajută......

Știu că ai întrebat asta cu mult timp în urmă, dar tocmai am avut aceeași problemă și în sfârșit am găsit soluția. În fișierul meu functions.php
, am dezactivat jquery (wp_deregister_script('jquery')
). Se pare că acest lucru face ca widget-urile să nu funcționeze în customizer, chiar dacă pagina mea încărcase jquery (prin wp_enqueue_script
).
Pentru a rezolva problema (presupunând că ai aceeași problemă ca mine), trebuie să reînregistrezi jquery apelând wp_register_script('jquery', ('url_to_jquery'), false, '1.11.1'[sau orice versiune de jquery ai])
.

Widget-ul nu va apărea niciodată dacă este apelat prin nume în loc de ID.
Verifică în sidebar.php sau footer.php unde dorești să afișezi widget-ul tău dacă ID-ul sidebar-ului înregistrat în functions.php este același sau nu.
Dacă folosești ID-ul widget-ului tău 'ceva' în functions.php și 'altceva' în locul unde dorești să afișezi widget-ul, atunci nu va funcționa!
Exemplu:
Dacă înregistrezi widget-ul în functions.php folosind "page-sidebar", atunci trebuie să apelezi widget-ul folosind <?php dynamic_sidebar( 'page-sidebar' ); ?>
în pagina ta de sidebar sau footer.

Cred că nu asta e problema. Funcționează bine, singura problemă este că acele widget-uri nu apar în secțiunea aspect -> personalizare.

Citește despre dynamic_sidebar
. "index
(integer/string) (opțional) Numele sau ID-ul barei laterale dinamice."
