• Witam wszystkich.
    Mam pewien problem z widgetami. Stworzyłem swój pierwszy szablon do WordPressa i wszystko działa tylko nie wyświetlają mi się widgety na stronie. Sam wordpress widzi miejsca na widgety i mogę je dodawać, ale na stronię już się nie wyświetlają.

    Oto kod i zdjęcie z wordpressa.
    Przykładowo footer

           </div>
            
            <footer>
            	<div class="footer-center">
                	<div>
                    	<img src="<?php echo PKRK_THEME_URL ?>/images/logo-footer.png" alt="footer-logo">
                    </div>
                	<div>
                    	<?php dynamic_sidebar('widget-zone-footer'); ?>
                    </div>
                	<div>
                    	<?php wp_nav_menu(array(
    						'menu' => 'Footer menu'
    					)); ?>                
                    </div>
                </div>
                <div class="CR-footer">
                    <div class="footer-center">
                        <p>©Copyrights <a href="http://cufflink.pl">Cufflink Agencja interaktywna</a></p>
                    </div>
                </div>
            </footer>
            
    </body>
    </html>

    deklaracja sidebarów

    if(function_exists(register_sidebar)) {
    		$sidebar_list = array (
    			array (
    				'name' => 'Sidebar (archiwum)',
    				'id' => 'sidebar-archive',
    				'description' => 'Widgety w sidebarze w archiwach'
    			),
    
    			array (
    				'name' => 'Sidebar (wpis)',
    				'id' => 'sidebar-wpis',
    				'description' => 'Widgety w sidebarze w wpisach'
    			),
    			
    			array (
    				'name' => 'Footer',
    				'id' => 'widget-zone-footer',
    				'description' => 'Widgety w footerze'
    			),
    		
    		);
    		
    		$sidebar_opts = array (
    			'before_widget' => '<div id="%1$s" class="box widget %2$s">',
    			'after_widget' => '</div>',
    			'before_title' => '<h5>',
    			'after_title' => '</h5>'
    		
    		);
    		
    		foreach($sidebar_list as $sidebar) {
    			register_sidebar(array_merge($sidebar, $sidebar_opts));	
    		}
    	
    	
    	
    }

    Screen z WordPressa

    Screen z WordPressa

    Z góry dziękuję za pomoc.
    Pozdrawiam

Viewing 4 replies - 1 through 4 (of 4 total)
  • Użyj funkcji register_sidebar dla każdego paska bocznego z osobna, pozbywając się pętli.

    Po drugie, paski boczne powinny znajdować się wewnątrz funkcji np:

    
    function register_widget_init(){
    
    // register_sidebar( array(
    register_sidebar( array(
    }
    

    I zainicjować ją zaczepem akcji widget_init
    afd_action( 'widget_init’, 'register_widget_init’);`

    • Ta odpowiedź została zmodyfikowana 7 years, 11 months temu przez Paweł.
    • Ta odpowiedź została zmodyfikowana 7 years, 11 months temu przez Paweł.
    Twórca wątku Qjubix

    (@qjubix)

    Tylko, że z inicjowaniem nie ma problemu, bo sam wordpress widzi paski boczne tylko kiedy juz je deklaruje na stronie <?php dynamic_sidebar('widget-zone-footer'); ?>to coś nie działa i nic się nie wyświetla.

    Sprawdziłem u siebie ten Twój kod no i u mnie działa więc… Coś musisz mieć skończone w motywie.

    Jak udostępnisz jego kod, to będziemy mogli powiedzieć coś więcej.

    P.s. warto też sprawdzić czy to jakaś wtyczka nie powoduje konfliktu i je wyłączyć.

    Twórca wątku Qjubix

    (@qjubix)

    Rozwiązałem problem. Pierdoła. Prawidłowa zapis powinien wyglądać tak:
    if(function_exists("register_sidebar")) {

    Pozdrawiam i dzięki za pomoc

Viewing 4 replies - 1 through 4 (of 4 total)
  • Temat ‘Problem z widgetami. Nie wyświetlają się na stronie.’ jest zamknięty na nowe odpowiedzi.