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&amp;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]

UDOSTĘPNIJ

Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej: