POMOC TECHNICZNA: +48 606 85 73 04

Jedna kategoria wpisów na głównej stronie – HOWTO

Jedna kategoria wpisów na głównej stronie – HOWTO
kod

Podczas prac z jednym z ciekawszych szablonów… (tym razem nie z ElegantThemes) natrafiłem na problem, którego rozwiązanie okazuje się nie być tak całkiem oczywiste.
Postanowiłem sobie stworzyć kategorię “Na głównej”, tak by wpisy z tej kategorii wyświetlały się na głównej stronie. Czyli ta jedna kategoria na głównej stronie i żadna inna.
Poniekąd przyzwyczaiłem się, że szablony ElegantThemes mają wbudowane funkcjonalność przypisywania do strony statycznej wybranej kategorii wpisów.  Standardowo niestety w tę funkcjonalność szablony nie są wyposażane (poza ET). Teraz przyszedł czas samodzielnie zaimplementować tę funkcję.
Można próbować “załatwić sprawę” jakąś wtyczką, ale… jakoś nie znalazłem odpowiedniej.
Znajdywałem jedynie takie, które poza szukaną funkcjonalnością dodawały jeszcze kilka całkowicie zbędnych “wodotrysków”.

Cóż zatem trzeba troszkę pomyśleć i napisać kilka linijek kodu…

Domyślnie w WordPressie możemy wybrać jako główną stronę, stronę z ostatnimi wpisami (ze wszystkich kategorii), lub którąś statyczną.
Co zrobić, gdy na głównej stronie chcemy wyświetlić wpisy z tylko jednej kategorii?

By tego dokonać potrzebujemy zebrać informacje i stworzyć krótki fragment kodu.

Tworzymy kategorię “Na głównej” (jeśli jeszcze jej nie mamy). Potrzebny jest tag_ID tej kategorii – znajdziemy go w pasku adresu po kliknięciu w
Wpisy => Kategorie => “Na głównej”.

W moim przypadku to tag_ID=59.

Należy zatem “wytłumaczyć” WordPressowi , że chcemy zmienić w zapytaniu klucz cat na wartość 59.
Podmianę klucza wykonujemy dodając akcję:

add_action('wp_head', mc2_only_one_category');

             function mc2_only_one_category()
                 {
                   if ( is_home() || is_front_page() )
                      {
                        global $wp_query;
                        $wp_query->query('cat=59');
                      }
                 }

 

Gdybyśmy chcieli  wyświetlać dwie kategorie, należałoby ich numery umieścić obok siebie rozdzielone przecinkiem czyli np. cat=10,59

A jeśli chcielibyśmy by na głównej stronie wyświetlały się wszystkie kategorie poza kategorią nr 25, należy numer kategorii poprzedzić minusem.
Zatem
cat= 10,59 – wyświetli wszystkie wpisy z kategorii o tag_ID = 10 i 59
cat= -25 – wyświetli wpisy z wszystkich kategorii poza kategorią o tag_ID=25

No ok… tak wygląda kod. Gdzie go umieścić?
Wchodzimy do zaplecza naszego WordPress’a i w menu  wybieramy Wygląd=> Edytor, następnie po prawej stronie w liście plików wybieramy functions.php
Powyższy kod umieszczamy na końcu pliku i aktualizujemy plik.
W ten oto sposób kilkoma linijkami kodu problem został rozwiązany. Teraz na głównej stronie pojawią się już nam wpisy tylko z wybranej kategorii. 😉

To tylko jeden ze skutecznych sposobów, jeśli macie swoje rozwiązania tego problemu, lub pytania napiszcie w komentarzach 🙂

avatar
2 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Maciej CTomekMarcin Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
Marcin
Gość
Marcin

Witam
Mam pytanie do Twojego wpsiu. Mianowicie ten kod mi działa, tylko dlaczego na kolejnych podstronach wyświetla mi cały czas tylko pierwsze 10 wpisów z wybranej kategorii? Mam trzy strony wpisów i po ustawianie tego kodu wyświetla tylko pierwsze 10?
W czym tu może być problem?

Pozdrawiam

Tomek
Gość
Tomek

Witam
Czy kod zostanie po aktualizacji wersji WordPress? Bo ma podobny problem i po aktualizacji systemu, czyszczone są dodatki do function.php.

 
Dyskusja
 
Zapisz się na mojego newslettera.

Zapisz się na mojego newslettera.

Otrzymasz zawsze aktualne informacje na temat bezpieczeńśtwa WordPressa i ciekawostki do samodzielnego wdrożenia na stronie.

Dzięki! Właśnie Twój zapis został zarejestrowany!

Shares