Bootstrap Wordpress tutorial logo

Sidebar.php czyli plik naszego panelu bocznego (z widgetami)

autor: Robert

1 grudnia 2014

Bardzo często strony WWW posiadają „panele boczne”, jest to element w którym możemy umieścić nawigację, kalendarz, różne linki itp. WordPress posiada wbudowaną obsługę paneli bocznych i umożliwia umieszczanie w nich widgetów.

W tym wpisie dowiecie się jak zaimplementować obsługę paneli i dodać własny.

Jak pewnie pamiętacie w tym wpisie napisałem jak w pliku functions.php napisałem jak aktywować w wordpressie obsługę sidebara. Napisałem także jak go „ostylować” by wyświetlał się tak jak tego chcemy.

Tak na prawdę plik sidebar.php służy tylko do pobrania zawartości panelu bocznego z pliku functions.php i umieszczeniu go na stronie.

Tak więc tworząc plik sidebar.php umieszczamy w nim funkcję <?php dynamic_sidebar('main-sidebar'); ?> gdzie main-sidebar to nazwa naszego panelu, którą użyliśmy w pliku functions.php.

No ale to nie wszystko. Dodamy sobie do naszego panelu jeszcze jeden element, którego nie będziemy umieszczali poprzez zaplecze WordPressa (Wygląd -> Widgety) a bezpośrednio w kodzie.

Może to być przykładowo dowolny kod HTML zatem w ramach przykładu dodamy sobie kolejny element panel.

Otwieramy sobie diva z klasą .col-md-12 (pamiętamy, że w Bootstrap 3 zagnieżdżając kolumny, te wewnątrz znów mogą mieć szerokość 12 kolumn). Następnie otwieramy sobie diva odpowiedzialnego za tworzenie panelu Bootstrap czyli .panel .panel-default. Stworzymy sobie jego tytuł za pomocą diva z klasą .panel-heading a w jego środku tytuł z użyciem znacznika H3 oraz klasy .panel-title. Zamykamy H3 oraz diva z klasą .panel-heading. Otwieramy diva z klasą .panel-body, wypełniamy go zawartością i zamykamy wszystkie otwarte elementy.

Spróbujcie sobie poeksperymentować w pliku sidebar.php. Wrzućcie do niego karuzelę, mini galerię zdjęć, button lub cokolwiek co wam przyjdzie na myśl i zobaczcie jak wyświetla się na podstronach

Przejdź do przykładowej strony

Komentarze: 22 komentarze

Kliknij tutaj, aby anulować odpowiadanie.

q.s.t.i. 16 marca 2015 o 16:18

Nie wyswietla mi sidebara w przykladzie. Jest „register_sidebar” w functions.php, jest „” i divy w sidebar.php oraz „” w Szablonie Strony Głównej a mimo to nie pokazuje Sidebara. Co robię źle? Jak pokazać tego sidebara bo już troche trace cierpliwość echh..

Odpowiedz
    Robert 16 marca 2015 o 16:20

    Wejdź w Wygląd -> Widgety, zobacz czy pojawił się tam „main-sidebar” i może dodaj do niego jakąś zawartość:)

    Odpowiedz
      sidebar q.s.t.i. 16 marca 2015 o 16:33

      Wlasnie jest „main-sidebar” i zawartosc tez: wyszukiwanie, kategorie, najnowsze wpisy.. A sidebara ani słychu ani widu.

      Odpowiedz
        Robert 16 marca 2015 o 16:36

        Rozumiem, że dodałeś <?php get_sidebar(); ?> w szablonie strony głównej? Utwórz stronę z domyślnym wyglądem i zobacz czy w niej pojawi się sidebar.

        Odpowiedz
          q.s.t.i. 16 marca 2015 o 16:42

          Zrobilem jeszcze raz wszystko od nowa i zadziałało, ale tylko na stronie Blog i Pojedyncza Strona zas na „Strona Głowna” – brak i „Własna Pojedyncza Strona” tez brak sidebara. Dzieki za info o debugu.

          Robert 16 marca 2015 o 16:44

          Templatka jest tak napisana, że na stronie głównej i własnej stronie nie ma sidebara:) odpowiada za to właśnie get_sidebar();

          q.s.t.i. 16 marca 2015 o 16:50

          To co zrobic zeby go tam na Głownej umiescic? Dodam ze get_sidebar(); jest na głownej. Jak robisz takie ładne < ? P H P… ?

          Robert 16 marca 2015 o 16:55

          Otwórz sobie plik single.php, pod jego koniec masz kod służący do umieszczenia sidebara, skopiuj go sobie na stronę główną czyli front-page.php.
          Taki kod robi się poprzez zamknięcie go wewnątrz znacznika <code>...</code> 🙂

          q.s.t.i. 16 marca 2015 o 17:03

          Ok, Jestes Wielki! Dzieki za wyrozumiałość:) Tez pomogłem klikając wiadomo w co;) Pozdrawiam

sidebar q.s.t.i. 16 marca 2015 o 16:23

sorki za zasmiecanie, ale cos mi nie chcialo wyswietlac. Pytanie j.w.
– Jest „register_sidebar” w functions.php,
– jest „dynamic_sidebar(‚main-sidebar’);” i divy w sidebar.php
– jest „get_sidebar();” w Szablonie Strony Głównej a mimo to nie pokazuje Sidebara.

Odpowiedz
    Robert 16 marca 2015 o 16:31

    Włącz sobie WP-debug w wp-config.php, pojawią Ci się ewentualne błędy.
    Ściągnij podstawową wersję templatki z mojej strony i zobacz czy wszystko masz identycznie (jakaś literówka). W menu Wygląd -> Widgety masz pole do dodawania widgetów?

    Odpowiedz
Sebastian 1 kwietnia 2015 o 17:08

Czy wgrywane i aktywowane pluginy dołożone do sidebar mają swoje własne style css ? pytam bo Sidebar mam dostępny mogę dodawać wtyczki do niego ale niestety wyglądają tak jakby były pozbawione styli (swoich własnych pomimo że w folderach wtyczek takowe są) .

Odpowiedz
    Robert 14 kwietnia 2015 o 08:47

    Powiem szczerze, że stworzyłem na podstawie tego szablonu już wiele stron i nigdy nie miałem problemu ze stylowaniem widgetów.

    Odpowiedz
marcin 12 października 2015 o 16:33

kurde, nie wiem czy mój poprzedni komentarz się dodał… Zapytam jeszcze raz 🙂
Jak dodać drugiego sidebara? Trzeba jakoś specjalnie zarejestrować go w pliku functions.php i co z plikiem sidebar.php w dnim się jakoś dopisuje tego drugiego sidebara? czy trzeba stworzyć nowy plik np: sidebar2.php ??? Będę wdzięczny za pomoc bo juz siędzę i kombinuję na różne sposoby i dupa blada…

Odpowiedz
marcin 12 października 2015 o 17:55

No to jeszcze jedno pytanie 🙂 Czy jest możliwość dodania użytkownikowi o roli „Autor” możliwość edycji sidebara np. z polem tekstowym?

Odpowiedz
Marcin 24 lutego 2016 o 21:23

Robercie, mam problem… chciałem dodać do swojej strony 3 sidebar’y… i jeśli mam dwa to jest wszystko OK… zarejestrowałem sidebar.php i sidebar-2.php, dodałem funkcje pobrania obydwu sidebar’ów poprzez i i jest super, pobiera mi widgety przeniesione w kokpicie… A problem jest jak robie sidebar’a nr 3… Pierwszy sidebar wisi sobie na stronce z widgetem Archiwum – lux działa, drugi wisi sobie w bootsrapowym nav-pillsie w treści strony i jest git – pobiera sobie widget tekstowy ustawiony w kokpicie. Problem jest jak rejestruje 3ciego sidebara (sidebar-3.php) i wrzucam go do innej zakładki (nav-pills) i dopisuje do niego w kokpicie widget z textem… Finał jest taki, że psują mi się zakładki, trzeci sidebar pokazuje się we wszystkich zakładkach a nie tylko w tej w której jest polecenie …. Kurde… pomocy :/

Odpowiedz
    Robert 25 lutego 2016 o 09:08

    Napisz do mnie maila z adresem strony, spróbujemy coś podziałać:)

    Odpowiedz