WordPress: jak wylosować wpis?

https://xpil.eu/1ax

Jeden z Czytelników zadał niedawno pytanie: jak wylosować wpis na blogu WordPress?

Metod jest wiele, jedne lepsze, inne gorsze. Moja (od niedawna) ulubiona to własna funkcja przekierowująca na losowy wpis z adresu /random

Zaleta: proste (5 linii kodu PHP), szybkie rozwiązanie.

Wady:

  1. Trzeba edytować pliki aktualnego motywu blogu, a więc aktualizacja motywu "zniszczy" naszą modyfikację. Można to obejść tworząc motyw potomny, ale na to już jestem za cienki w uszach.
  2. Wymaga zewnętrznej wtyczki do przekierowania z /random na /?random=1 (aczkolwiek patrz komentarze na końcu wpisu)
  3. Nie działa (chyba) na blogach w domenie wordpress.com (innymi słowy wymaga własnej domeny / hostingu)

Szczegóły:

  1. Logujemy się do panelu administracyjnego naszego blogu
  2. Z menu po lewej wybieramy Wygląd => Edytor
  3. Na liście plików do edycji (po prawej stronie ekranu) klikamy: Funkcje motywu (functions.php)
  4. W edytorze pojawi się kod php z pliku functions.php. Przewijamy na sam koniec i dopisujemy następujący kod:
function losuj_wpis() {
       if (get_query_var('random') == 1) {
               wp_redirect(get_permalink(get_posts('post_type=post&orderby=rand&numberposts=1')[0]),307);
               exit();
       }
}
add_action('template_redirect','losuj_wpis');
  1. Zapisujemy zmiany.
  2. Instalujemy wtyczkę Przekierowanie (tu link do strony domowej wtyczki: !klik!)
  3. W opcjach wtyczki Przekierowanie definiujemy przekierowanie z /random na /?random=1

I to w zasadzie tyle. Przypuszczam, że punkty 6-7 dałoby się ominąć za pomocą odpowiedniego wpisu w .htaccess, ale ponieważ używałem wtyczki Przekierowanie już wcześniej, poszedłem na skróty. Jeżeli ktoś ma gotową, sprawdzoną recepturę, niech da znać...

Od tej pory możemy losować wpis na naszym blogu używając adresu https://adres-bloga/random

 

Piszę w dotnecie

już trzecie stulecie

Bo kto się w pehapie połapie?

https://xpil.eu/1ax

4 komentarze

  1. Dziękuję za odpowiedź na temat losowania. Bardzo fajne i na pewno umieszczę to na swoim blogu

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.