register_sidebar() nie działa
-
Witajcie,
Natrafiłem na pewien problem pisząc szablon,
mianowicie nie chce mi działać opcja register_sidebar()Mam w plikach zarówno wp_head() jak wp_footer(), mam dodaną funkcję w sidebar.php i function.php zgodnie z info z poniższego linku i nadal nic:
http://codex.wordpress.org/Widgetizing_ThemesWszelkie pomysły mile widziane.
-
Pokaż kod z functions.php
<?php if ( function_exists('register_sidebar') ) register_sidebar(); ?>
Dokładnie taki sam jak w docsach..
Następnym razem czytaj dokumentację dokładnie, i do końca, wywołujesz funkcję bez żadnych parametrów, i dziwisz się nie wiem – że sama nie zgaduje co Ty chcesz zrobić? … tu masz inny przykład:
<?php if ( function_exists('register_sidebar') ) register_sidebar(array( 'name'=>'sidebar_home', 'before_widget' => '<div class="widget">', 'after_widget' => '</div>', 'before_title' => '<h2>', 'after_title' => '</h2>', )); ?>
Czytałem i nawet próbwowałem ale z tymi parametrami także nie działa.
Uprzedzając kolejne pytanie: wiem że dodając parametr name trzeba go nastepnie po tym samym name wywołać.Wywołać trzeba dopiero jak chcesz widgety wyświetlić, samo zdefiniowanie tak sidebra powinno wystarczyć. Pokaż cały kod z functions.php …
Sam kod jest bardzo podobny:
<?php if ( function_exists('register_sidebar') ) register_sidebar(array( 'name' => 'main_sidebar', 'before_widget' => '<div class="widget">', 'after_widget' => '</div>', 'before_title' => '<h3 class="title">', 'after_title' => '</h3>', )); ?>
Nic więcej na razie w pliku functions.php nie ma. Na poprzednich wersjach nigdy nie miałem z tym problemu, a na tej jakoś nie chce zadziałać.
Niech Twój functions.php przeminauje się na taki:
<?php function new_widgets_init() { register_sidebar( array( 'name' => __( 'Blog', 'BuzzyBees' ), 'id' => 'blog', 'description' => __( 'Blog / Kategorie / Tagi', 'BuzzyBees' ), 'before_widget' => '<div class="content_right_widget">', 'after_widget' => '</div>', 'before_title' => '<h2>', 'after_title' => '</h2>', ) ); register_sidebar( array( 'name' => __( 'Strony', 'BuzzyBees' ), 'id' => 'sites', 'description' => __( 'O Nas / Oferta / Portfolio / Kontakt', 'BuzzyBees' ), 'before_widget' => '<div class="content_right_widget">', 'after_widget' => '</div>', 'before_title' => '<h2>', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', 'new_widgets_init' );
Sprawdź czy działa. Potem ogarnij, i pozmieniaj sobie pozmieniaj co potrzebujesz …
Znalazłem błęda i zaczęło chodzić.. Dzięki serdeczne za pomoc.
Przy okazji spytam o coś. W pliku functions.php mam następujący kod:
function register_my_menus() { register_nav_menus( array( 'header-menu' => __( 'Header Menu' ), 'extra-menu' => __( 'Footer Menu' )) ); } add_action( 'init', 'register_my_menus' );
w header.php
<?php wp_nav_menu( array( 'header-menu' => 'Header Menu' ) ); ?>
w footer.php
<?php wp_nav_menu( array( 'extra-menu' => 'Footer Menu' ) ); ?>
Pewnie to jedynie zwykła niewiedza, ale w obu miejscach (header i footer) wyświetla to samo menu, mimo przypisania każdemu oddzielnego.
Spróbuj tak:
<?php wp_nav_menu( array( 'theme_location' => 'header-menu', 'menu_id' => 'header-menu' ) ); ?>
… i napisz jakiego błęda znalazłeś, będzie dla potomnych.
- Temat ‘register_sidebar() nie działa’ jest zamknięty na nowe odpowiedzi.