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.
[FMP]
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).
[/FMP]
Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej:

Każdy, kto zapisze się na newsletter otrzyma ebooka pt. 

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ę?