WP-DOC

Pisanie motywu

05.02 Panele boczne – kilka sidebar

Ostatnia modyfikacja: 01.04.2021

WordPress daje możliwość rejestracji więcej niż jednego paska bocznego. W artykule 05.01 Panel boczny – sidebar, jest dokładne wyjaśnienie rejestracji pojedynczego sidebar. Wiedza z tego artykułu, będzie kluczowa do zrozumienia poniższej treści.

Rejestracja kilku sidebar

To gdzie ma być wyświetlona zawartość widżetów z danego sidebar, służy identyfikator czyli id podany w funkcji register_sidebar(). Należy pamiętać, aby nazwa name, również była inna, aby umożliwić identyfikację paska bocznego w panelu administratora WordPress. Na listingu niżej rejestracja trzech pasków bocznych.

Rejestracja trzech pasków bocznych

function reg_sidebar() {
    register_sidebar(array(
		'name'          => 'Panel boczny lewy', 'nazwamotywu',
		'id'            => 'sidebar-left',
        'description'   => 'Tutaj przeciągnij widżet.', 'nazwamotywu',
		'before_widget' => '<div id="%1$s" class="aside_box %2$s">',
		'after_widget'  => '</div>',
		'before_title'  => '<h2>',
        'after_title'   => '</h2>'
    ));
    register_sidebar(array(
		'name'          => 'Panel boczny prawy', 'nazwamotywu',
		'id'            => 'sidebar-right',
        'description'   => 'Tutaj przeciągnij widżet.', 'nazwamotywu',
		'before_widget' => '<div id="%1$s" class="aside_box %2$s">',
		'after_widget'  => '</div>',
		'before_title'  => '<h2>',
        'after_title'   => '</h2>'
    ));
    register_sidebar(array(
		'name'          => 'Panel boczny dolny', 'nazwamotywu',
		'id'            => 'sidebar-bottom',
        'description'   => 'Tutaj przeciągnij widżet.', 'nazwamotywu',
		'before_widget' => '<div id="%1$s" class="aside_box %2$s">',
		'after_widget'  => '</div>',
		'before_title'  => '<h2>',
        'after_title'   => '</h2>'
	));
}
add_action('widgets_init','reg_sidebar');

W zależności gdzie chcemy wyświetlić jaki sidebar, wystarczy podać odpowiedni identyfikator id.

Wyświetlenie paska bocznego

<?php if (is_active_sidebar('sidebar-right')) : ?>
    <?php dynamic_sidebar('sidebar-right'); ?>   
<?php else: ?>
    // Tutaj informacja, w przypadku braku rejestracji sidebar lub braku umieszczonego widżetu.
<?php endif; ?>

Dobrą praktyką jest, aby nazwa id wskazywała na miejsce zastosowania paska bocznego.

Podczas rejestracji wszystkich trzech sidebar, różnica polega tylko i wyłącznie na innej nawie identyfikatora id oraz nazwie name. Z pozostałych elementów można utworzyć osobną tablicę i za pomocą funkcji PHP array_merge(), połączyć ją z tablicą wewnątrz funkcji register_sidebar(). Na listingu niżej rejestracja tych samych sidebar z wykorzystaniem funkcji array_merge().

Skrócona rejestracja kilku sidebar

function reg_sidebar() {

    $array_shared = array (
        'description'   => 'Tutaj przeciągnij widżet.', 'nazwamotywu',
		'before_widget' => '<div id="%1$s" class="aside_box %2$s">',
		'after_widget'  => '</div>',
		'before_title'  => '<h2>',
        'after_title'   => '</h2>'
    );

    register_sidebar(array_merge(
        $array_shared,
        array(
            'name'  => 'Panel boczny lewy', 'nazwamotywu',
            'id'    => 'sidebar-left'
        )
    ));

    register_sidebar(array_merge(
        $array_shared,
        array(
            'name'  => 'Panel boczny prawy', 'nazwamotywu',
            'id'    => 'sidebar-right'
        )
    ));

    register_sidebar(array_merge(
        $array_shared,
        array(
            'name'  => 'Panel boczny dolny', 'wpnauka',
            'id'    => 'sidebar-bottom'
        )
    ));
}
add_action('widgets_init','reg_sidebar');

Sidebar w osobnym pliku

Każdy zarejestrowany sidebar, można umieścić w osobnym pliku. Na przykład sidebar o identyfikatorze id sidebar-left, może zostać umieszczony w pliku sidebar-left.php. Analogicznie sidebar-right w pliku sidebar-right.php a sidebar-bottom w pliku sidebar-bottom.php. Funkcja get_sidebar(), wczytuje plik sidebar.php. Jeżeli jako argument tej funkcji podamy slug nazwy pliku czyli left, right lub bottom, zostanie załadowany odpowiedni plik.

Przykład załadowania pliku po nazwie slug.

// Dla pliku sidebar-left.php
get_sidebar('left');

// Dla pliku sidebar-right.php
get_sidebar('right');

// Dla pliku sidebar-bottom.php
get_sidebar('bottom');

KOMENTARZE

Jeżeli masz pytanie lub sugestie dotyczącą artykułu to napisz komentarz. Wartościowe komentarze zostaną umieszczone jako opinie warte uwagi.

Napisz komentarz

Wszystkie pola są obowiązkowe. E-mail nie będzie udostępniony, ani wykorzystywany do rozsyłania wiadomości reklamowych.

Jeszcze nikt nie napisał komentarza.