Jak dodać tytuł ostatniego wpisu z określonej kategorii w motywie?
- Poziom trudności:
Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej:
Klient na swojej stronie postanowił rozpocząć regularny cykl wpisów. Co tydzień na witrynie miał się pojawiać nowy wpis w określonej kategorii. Moim zadaniem było wyświetlenie tytułu najnowszego wpisu w bocznym pasku strony. Jeśli masz podobny problem i nie wiesz jak sobie z nim poradzić – zapraszam Cię do lektury tego wpisu.
Na początku kilka słów na temat wykorzystanego przy tej okazji rozwiązania.
Mechanizm, który odpowiada za wyświetlenie wpisów na stronie głównej czy na stronie kategorii to pętla query_posts. Jest to fragment kodu PHP odpowiadający za wyświetlenie wpisów tytuł po tytule, a także dodatkowych elementów takich jak metadane, lead, przycisk „czytaj więcej” itp.
To od Ciebie zależy w jaki sposób będzie wyglądać pętla i jakie elementy będzie zawierać, a które z nich zostaną pominięte.
Ponieważ pętla do w dużej mierze kod PHP, dlatego nie jest tak łatwo umieścić go w bocznym pasku. Zapewne jest kilkanaście sposobów na wprowadzenie kodu PHP do sidebara. Ja wybrałem najprostszy – wtyczkę PHP Code Widget. Aby ją zainstalować przejdź do sekcji Wtyczki -> Dodaj nową i wpisz w polu wyszukiwarki PHP Code Widget, a po znalezieniu właściwej wtyczki dokonaj jej instalacji.
Wtyczka jest o tyle wygodna, że nie wymaga dodatkowej konfiguracji. Po uruchomieniu jej przejdź do Wygląd -> Widgety i poszukaj wśród dostępnych widgetów takiego, który będzie nosił nazwę PHP Code. To widget przypominający widget tekstowy z tą różnicą, że pozwala na umieszczenie kodu PHP (nie tylko HTML’a jak w tekstowym).
Już połowa za nami. Teraz umieści widget typu PHP Code w bocznym pasku, a wewnątrz wklej poniższy fragment kodu:
<ul class="ostatni-wpis"> <?php // The Query query_posts( 'cat=29&posts_per_page=1' ); // The Loop while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></li> <?php endwhile; // Reset Query wp_reset_query(); ?> </ul>
Całość zapisz i przejdź do Wpisy -> Kategorie. Teraz kliknij na wybraną kategorię, z której mają być pobierane tytuły najnowszych wpisów. Po wybraniu kategorii w pasku adresu pojawi się ścieżka:
https://500sekund.pl/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=175
Zwróć uwagę na końcówkę tego adresu. Najprawdopodobniej znajdzie się tam ID= i liczba przypisana do kategorii (ID kategorii). Skopiuj tę liczbę i wklej ją w 4 linii powyższego fragmentu kodu PHP. W moim przypadku jeśli kategoria ma ID=175 linia 4 wyglądałaby w następujący sposób:
query_posts( 'cat=175&posts_per_page=1' );
Linia z query_posts zawiera wszystkie atrybuty jakie potrzebujesz do wyświetlenia tytułu ostatniego wpisu. Pierwszy atrybut określa kategorię, a drugi wskazuje na ilość wyświetlonych tytułów na stronie (to dzięki niemu wynik zawężony jest do 1-go).
Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej:
Da się to zrobić bez problemu. Jak rozumiem chodzi o rozwiązanie podobne do tego ze strony https://500sekund.pl/przewodnik/ po wejściu w dowolną podstronę wyświetla się (mimo iż to strona) lista tytułowa artykułów tam zawartych. Dobrze myślę?