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:
- 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.
- Wymaga zewnętrznej wtyczki do przekierowania z /random na /?random=1 (aczkolwiek patrz komentarze na końcu wpisu)
- Nie działa (chyba) na blogach w domenie wordpress.com (innymi słowy wymaga własnej domeny / hostingu)
Szczegóły:
- Logujemy się do panelu administracyjnego naszego blogu
- Z menu po lewej wybieramy Wygląd => Edytor
- Na liście plików do edycji (po prawej stronie ekranu) klikamy: Funkcje motywu (functions.php)
- 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');
- Zapisujemy zmiany.
- Instalujemy wtyczkę Przekierowanie (tu link do strony domowej wtyczki: !klik!)
- 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?
Dziękuję za odpowiedź na temat losowania. Bardzo fajne i na pewno umieszczę to na swoim blogu
Smacznego!
Nie bardzo mogę sobie poradzić z 7 punktem, nie mogę tego znaleźć ;/
http://imgur.com/a/WBTYN