Twój blog WordPress prawdopodobnie zawiera dziesiątki świetnych starszych wpisów, ale nowi odwiedzający widzą tylko Twoje najnowsze, podczas gdy wszystko inne pozostaje pogrzebane w Twoich archiwach.
Wyświetlanie losowych wpisów to łatwy sposób, aby to naprawić. Każde ładowanie strony pokazuje inne treści, co daje starszym wpisom nową ekspozycję i sprawia, że odwiedzający dłużej klikają w Twojej witrynie. Możesz nawet dodać przycisk „Losowy wpis”, który pozwoli czytelnikom przejść do niespodziewanego artykułu, w stylu klasycznego StumbleUpon.
W tym poradniku pokażemy Ci, jak wyświetlać losowe wpisy w WordPress, a także jak przekierowywać odwiedzających do losowego wpisu za pomocą jednego linku.

Po prostu użyj poniższych szybkich linków, aby przejść do metody, której chcesz użyć:
Jak wyświetlać losowe posty w WordPress
Szukasz zabawnego sposobu na utrzymanie zaangażowania odwiedzających na Twojej stronie? Możesz łatwo dodać listę losowych artykułów bezpośrednio do swojego paska bocznego, stron lub bezpośrednio do swoich wpisów na blogu.
Chociaż niektóre poradniki mogą sugerować dodanie niestandardowego kodu do pliku functions.php Twojego motywu, zalecamy użycie WPCode, darmowego pluginu do fragmentów kodu dla WordPress.
WPCode posiada inteligentną walidację fragmentów kodu, aby zapobiec powszechnym błędom kodu, które mogłyby zepsuć Twoją witrynę. Sprawia również, że Twoje modyfikacje są przyszłościowe, co oznacza, że możesz aktualizować lub przełączać się na inny motyw bez obawy o utratę wszystkich niestandardowych funkcji kodu.
Najpierw musisz zainstalować i aktywować darmowy plugin WPCode. Szczegółowe instrukcje znajdziesz w naszym przewodniku dla początkujących na temat jak zainstalować plugin WordPress.
Po aktywacji wtyczki przejdź do strony Fragmenty kodu » + Dodaj fragment na pasku bocznym administratora WordPress.
Gdy już tam będziesz, kliknij przycisk „+ Dodaj niestandardowy fragment” pod opcją „Dodaj swój niestandardowy kod (nowy fragment).”

Następnie wybierz „Fragment PHP” jako typ kodu.
Następnie zostaniesz przeniesiony na stronę „Utwórz niestandardowy fragment”, gdzie możesz zacząć od wpisania nazwy fragmentu kodu.
Ten tytuł służy tylko do Twojej wiadomości i nie pojawi się nigdzie na Twojej stronie.

Następnie po prostu skopiuj i wklej poniższy kod do pola „Podgląd kodu”:
<?php
$number_of_posts = 5; // Change this to the number of random posts you want to display.
$title = 'You might also like:'; // This is the title that will be displayed above the list of posts.
$current_post_id = get_the_ID();
$args = array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => $number_of_posts,
'post__not_in' => array( $current_post_id ),
);
$random_posts = new WP_Query( $args );
if ( $random_posts->have_posts() ) {
echo '<h3>' . esc_html( $title ) . '</h3>';
echo '<ul>';
while ( $random_posts->have_posts() ) {
$random_posts->the_post();
echo '<li><a href="' . esc_url( get_permalink() ) . '">' . esc_html( get_the_title() ) . '</a></li>';
}
echo '</ul>';
}
wp_reset_postdata();
Ten fragment wyświetla 5 losowych wpisów wszędzie tam, gdzie umieścisz jego krótki kod, i automatycznie pomija wpis, który odwiedzający już czyta.
Aby wyświetlić inną liczbę, zmień wartość $number_of_posts na górze fragmentu. Linia $title kontroluje nagłówek „Może Ci się również spodobać:”, który pojawia się nad listą, więc edytuj ten tekst lub ustaw go na '', jeśli wolisz nie mieć nagłówka wcale.
Następnie musisz zapisać fragment, aby wygenerować unikalny krótki kod, więc kliknij przycisk „Zapisz fragment”.

Następnie przewiń do sekcji „Wstawianie” i wybierz opcję „Krótki kod”.
Zobaczysz teraz krótki kod, który WPCode wygenerował automatycznie. Kliknij jego przycisk „Kopiuj”, ponieważ będziesz używać tego krótkiego kodu w następnym kroku.

Na koniec przewiń z powrotem na górę i przełącz przełącznik „Nieaktywny” na „Aktywny”.
Następnie po prostu kliknij przycisk „Zaktualizuj”, aby zapisać zmiany.

Po zapisaniu fragmentu kodu możesz wyświetlać losowe posty na swojej stronie za pomocą skopiowanego wcześniej krótkiego kodu.

Więcej informacji na ten temat znajdziesz w naszym przewodniku jak dodawać krótkie kody WordPress.
Jeśli te same losowe posty nadal się pojawiają zamiast się zmieniać, zazwyczaj jest to spowodowane buforowaniem strony przez wtyczkę cache, która serwuje zapisaną kopię strony. Zacznij od wyczyszczenia pamięci podręcznej i odświeżenia strony.
Jeśli nadal się nie zmieniają, wyklucz tę stronę z buforowania całej strony przez wtyczkę cache.
Jak przekierować użytkowników do losowego wpisu (z użyciem wtyczki)
Chociaż wyświetlanie listy losowych postów świetnie sprawdza się w pasku bocznym lub na końcu artykułu, nadal wymaga od odwiedzających skanowania tytułów i wybierania jednego. We wczesnych dniach internetu, cieszyliśmy się Stumbleupon, które ułatwiało odkrywanie nowych treści za pomocą jednego kliknięcia.
Możesz dodać podobną funkcjonalność na swojej stronie, gdzie zamiast wyświetlać listę, tworzysz przycisk „Losowy post” lub link „Zaskocz mnie”, który natychmiast przenosi odwiedzających do losowego artykułu na Twojej stronie. To zabawny sposób na zachęcenie do eksploracji i działa szczególnie dobrze na stronie 404 lub w menu nawigacyjnym.
Polecamy użycie darmowej Wtyczki Losowy Post. Działa ona poprzez dodanie parametru URL ?redirect_to=random do Twojej strony.
Po prostu zainstaluj i aktywuj wtyczkę, a następnie dodaj link do swojego menu nawigacyjnego, widżetu w pasku bocznym, przycisku lub gdziekolwiek indziej na swojej stronie. Odwiedzający może wtedy kliknąć go, aby przejść do losowego posta.
Aby zbudować własny link, musisz zastąpić www.example.com swoją własną nazwą domeny.
Oto warianty, których możesz użyć:
- www.example.com/?redirect_to=random&each_once=rewind. Zapewnia, że odwiedzający nie zobaczą tego samego posta dwa razy. Ten link automatycznie się resetuje, gdy zobaczą każdy post na Twojej stronie.
- www.example.com/?redirect_to=random&count=10. Wyświetla losowe posty tylko z 10 najnowszych opublikowanych artykułów.
- www.example.com/?redirect_to=random&after=1 month ago. Wyświetla losowe posty opublikowane w ciągu ostatniego miesiąca.
- &cache=120. Dodaj to na samym końcu adresu URL, aby tymczasowo zapisać (buforować) wynik przez 120 sekund. Pomaga to Twojej stronie WordPress ładować się szybciej.
Na przykład, możesz stworzyć przycisk, który wyświetla losowy post, wybrany z Twoich 20 najnowszych postów:

Jeśli wolisz gotowy przycisk „Losowy post”, wtyczka zawiera również poręczny krótki kod.
Możesz łatwo dodać krótki kod [redirect_to_post_button] do dowolnego posta, strony lub obszaru widżetu. Jeśli potrzebujesz pomocy, sprawdź nasz przewodnik dla początkujących jak dodać krótki kod w WordPress.

Jak przekierować użytkowników do losowego wpisu w WordPress (za pomocą kodu)
Jeśli wolisz nie instalować kolejnej wtyczki jednofunkcyjnej, możesz skonfigurować ten sam przekierowanie „Losowy post” za pomocą fragmentu kodu.
Ten fragment tworzy zupełnie nowy adres URL w Twojej witrynie, który będzie wyglądał mniej więcej tak: example.com/losowy.
Nie wpłynie to na żadne z Twoich istniejących stron i nie dotknie czytelników przeglądających Twoje posty. Przekierowanie następuje tylko wtedy, gdy ktoś ręcznie odwiedzi ten nowy adres /losowy, na przykład klikając przycisk lub link w menu „Losowy post”, który ustawiłeś.
Więc, za każdym razem, gdy czytelnik odwiedzi example.com/losowy, WordPress automatycznie pobierze jeden z Twoich opublikowanych postów całkowicie losowo i przekieruje go bezpośrednio do niego.
Aby zapewnić bezpieczeństwo Twojej witryny, dodamy kod za pomocą wtyczki WPCode, którą skonfigurowaliśmy wcześniej. Gwarantuje to, że pojedynczy błędnie wpisany znak nie uszkodzi Twojej witryny ani nie zablokuje Ci dostępu do obszaru administracyjnego.
Możesz po prostu wkleić go jako nowy fragment kodu PHP w WPCode, wykonując te same kroki, które omówiliśmy wcześniej:
<?php
function wpb_random_post_rewrite() {
add_rewrite_rule( '^random/?$', 'index.php?random_redirect=1', 'top' );
}
add_action( 'init', 'wpb_random_post_rewrite' );
function wpb_random_post_query_var( $vars ) {
$vars[] = 'random_redirect';
return $vars;
}
add_filter( 'query_vars', 'wpb_random_post_query_var' );
function wpb_do_random_post_redirect() {
if ( get_query_var( 'random_redirect' ) ) {
$random = get_posts( array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => 1,
) );
if ( $random ) {
wp_redirect( get_permalink( $random[0]->ID ), 307 );
exit;
}
}
}
add_action( 'template_redirect', 'wpb_do_random_post_redirect' );
Możliwe, że zauważyłeś, że ten fragment używa przekierowania 307, które informuje przeglądarkę, że docelowy adres jest tymczasowy.
Dzieje się tak, ponieważ przeglądarki internetowe buforują trwałe przekierowania 301 w celu przyspieszenia ładowania. W rezultacie przeglądarka nadal wysyłałaby odwiedzającego do tego samego posta, całkowicie psując losowość.
Po zapisaniu i aktywowaniu fragmentu kodu, po prostu przejdź do Ustawienia » Stałe linki w swoim panelu WordPress i kliknij przycisk „Zapisz zmiany”.
Ten szybki krok jest znany jako „czyszczenie stałych linków”. Wymusza na WordPressie odświeżenie struktury linków, dzięki czemu może natychmiast rozpoznać Twój zupełnie nowy adres URL /losowy.
Jeśli używasz wtyczki buforującej WordPress do przyspieszenia działania swojej witryny, pamiętaj, aby dodać /losowy do jej listy wykluczonych adresów URL. Gwarantuje to, że przekierowanie będzie działać za każdym razem, zamiast serwować odwiedzającym zbuforowaną stronę.
Twoje losowe przekierowanie jest teraz gotowe do użycia. Możesz skierować dowolny link na example.com/losowy, czy to będzie przycisk, element menu nawigacyjnego, widżet paska bocznego, czy link tekstowy w poście.
Po prostu pamiętaj, aby zastąpić example.com swoją własną nazwą domeny.
Mamy nadzieję, że ten artykuł pomógł Ci dowiedzieć się, jak wyświetlać losowe wpisy w WordPress. Możesz również zapoznać się z naszym przewodnikiem dla początkujących na temat łatwego zmiany kolejności wpisów w WordPress oraz naszym poradnikiem na temat tworzenia prywatnego wpisu w WordPress.
Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.


Dayo Olobayo
Próbowałem kilku metod wyświetlania losowych postów, ale żadna z nich nie działała tak dobrze jak ta metoda niestandardowego zapytania. Ten samouczek jest łatwy do zrozumienia i podoba mi się, jak podałeś przykłady i fragmenty kodu, aby zilustrować proces. Twoja wiedza zaoszczędziła mi mnóstwo czasu i frustracji. Dziel się dalej swoją wiedzą z nami!
Jiří Vaněk
Z tego, co rozumiem, kod nie zawiera wyróżnionych obrazków postów. Czy są jakieś opcje z kodem, aby wyświetlać posty również z wyróżnionymi obrazkami?
Wsparcie WPBeginner
Możesz przyjrzeć się najnowszym postom w edytorze blokowym.
Administrator
Jiří Vaněk
Dziękuję za radę. Tak, to działa dla mnie. Używam Elementora i czasami Seed Prod. Ponieważ nigdy nie używam Gutenberga, ta opcja nigdy mi nie przyszła do głowy. Po prostu nie wiedziałem, że Gutenberg ma taki blok. Dzięki za wskazówkę.
Chris Smith
Moje przypięte wpisy zawsze pojawiają się wśród moich losowych wpisów. Czy jest sposób, aby wykluczyć przypięte wpisy z tego kodu?
Wsparcie WPBeginner
Aby to osiągnąć, zalecamy użycie wtyczki z drugiej metody, zamiast modyfikowania kodu.
Administrator
Michael
Czy istnieje łatwy sposób na buforowanie wyników przez określony czas zamiast losowania za każdym razem? Może odświeżanie raz na 24 godziny, aby zmniejszyć obciążenie wywołań bazy danych za każdym razem?
Wsparcie WPBeginner
W sprawie tej funkcjonalności powinieneś skontaktować się ze wsparciem wtyczki, aby dowiedzieć się, czy jest ona dostępna.
Administrator
Marvin Duru
Proszę, próbowałem dodać skrócony kod w określonym miejscu na mojej stronie, nie w poście w PHP, ale sekcja Losowy post nie wyświetliła się, a jedynie pokazała mój tekst “[wpb-random-posts]”.
Co mam zrobić?
Wsparcie WPBeginner
Podczas korzystania z edytora bloków należy upewnić się, że dodajesz go za pomocą bloku kodu krótkiego.
Administrator
Zeynep
Dzięki, kod działa bez zarzutu. Zmieniłem pierwszą stronę mojej witryny WordPress na index.html, co muszę zrobić, aby uruchomić [wpb-random-posts] na mojej stronie html? Mój angielski jest trochę słaby, mam nadzieję, że mnie zrozumiesz.
Wsparcie WPBeginner
Potrzebowałbyś, aby strona była stroną WordPress, aby skrócony kod WordPress działał.
Administrator
Elle
Jak można by to ostylować? Mam problem ze zrozumieniem, jak kontrolować projekt tego, nigdy nie pracowałem ze stylizacją PHP.
Wsparcie WPBeginner
Zależałoby to od stylizacji, którą chcesz dodać, od tego, co trzeba zrobić. Możesz dodać klasę w kodzie HTML, aby mieć coś do ukierunkowania.
Administrator
Maria Cristhiane Amorim
Witaj! Czy mogę to zrobić w ogłoszeniu?
Wsparcie WPBeginner
Musiałbyś wyjaśnić, co przez to rozumiesz
Administrator
Rob Packenham
Dzięki za pomocny artykuł.
Mam pytanie — strony mojej witryny WordPress zawierają pasek boczny z widżetem losowych postów (fragmentów).
Problem polega na tym, że Google indeksuje strony i „widzi” losowe fragmenty postów jako treść strony. Zatem w wyszukiwarce Google strona może pojawić się jako pasująca do terminu wyszukiwania tylko dlatego, że jeden z losowych fragmentów postów na stronie pasował do terminu (a nie główna treść strony).
Jednak gdy użytkownik kliknie link w wynikach wyszukiwania Google, zobaczy stronę z innym zestawem losowych fragmentów postów w pasku bocznym – nie z fragmentem postu z pasującym tekstem. Wygląda to dla nich jak złe wyszukiwanie.
W idealnej sytuacji chciałbym wykluczyć losowe fragmenty postów z indeksu Google, czyli ukryć je przed Google, ale wygląda na to, że nie jest to możliwe (?).
Jeśli masz jakieś sugestie, będę wdzięczny! Dzięki.
Jun Enriquez
Wypróbowałem to i zniszczyło moją stronę, jak to zresetować?
Błąd HTTP 500
Proszę o pomoc
Dzięki
Czerwiec
Yin
Wielkie dzięki za udostępnienie tego. Używałem innej wtyczki do losowych postów, która już nie działa. Potem znalazłem Waszą stronę i zainstalowałem wtyczkę. Działa jak marzenie.
Lisa
Cześć i dzięki za ten pomocny tutorial!
Czy możesz mi powiedzieć, jaki fragment kodu należy dodać, aby wyświetlać losowe posty z określonej kategorii? Mój motyw nie wyświetla paska bocznego, więc nie mogę użyć wtyczki, a już ma wyświetlanie losowych postów pod każdym artykułem, ale posty ze wszystkich kategorii są wtedy uwzględniane i wyświetlane. Próbowałem sprawdzić kod motywu i dodać 'post_category' => 'nazwa-kategorii', ale to nie działa. Masz jakiś pomysł?
Raff
Cześć! Chciałbym zapytać, co jeśli chcę zmieniać losowe posty co tydzień lub w dowolnym momencie. Na przykład, wyświetlam zestaw losowych postów, który nie zmieni się przez 7 dni lub w innym określonym czasie. Dziękuję!
Abhimanyu Kashyap
Dzięki wielkie, udało mi się wyświetlić losowe posty. Zmieniłem liczbę postów na 1, aby wyświetlić 1 losowy post. Czy jest na to lepszy sposób?
Chciałbym również dowiedzieć się, jak mogę użyć zmiennej zamiast typu posta i wprowadzić ją tam, gdzie umieszczam skrócony kod, np. – [wpb-random-posts(‘post’)].
Jak mogę to osiągnąć??
devender
dzięki za udostępnienie tego kodu, jest bardzo pomocny……..
Nate
Ustawienie postów na uporządkowane => 'rand' to półśrodek. Jasne, post wyświetla się 'losowo', ale jak wspomniano powyżej DI SEKITAR, jaki jest sens wyświetlania jednego losowego posta, jeśli za każdym razem, gdy ktoś odwiedza stronę, będzie to ten sam losowy post?
Nate
Miałem na myśli „orderby”... Zostałem sprawdzony pod kątem pisowni.
smehsan
Przepraszam, ale ciąg znaków nie działał i po prostu uczyniłem go globalnym i teraz działa dobrze.
global $string;
Marléne Rose Shaw
Dziękuję za ten świetny tutorial. Czy jest jakiś sposób, abym mógł uzyskać krótki kod, a następnie wyświetlić losowe posty pod treścią na stronie zamiast na pasku bocznym??
Katherine
JAYKAY
Aby wykluczyć bieżący post, dodaj
‘post__not_in’ => array(get_the_id())
do zapytania.
Zatem Twoje argumenty będą teraz wyglądać tak:
$args = array( 'post_type' => 'post', 'orderby' => 'rand', 'posts_per_page' => 5, 'post__not_in' => array(get_the_id()), );
JAYKAY
Działa dobrze z tym fragmentem kodu.
Dziękuję KATHERINE
di sekitar
naprawdę świetne informacje,
wypróbowałem wtyczkę, o której wspomniałeś, ale mam wielkie pytanie.
Jak sprawić, aby losowy post był inny dla każdego odwiedzającego lub urządzenia odwiedzającego moją stronę?
ponieważ próbowałem odwiedzić moją stronę z innego notebooka i smartfona, ale losowe wpisy z tych 2 urządzeń są takie same.
JayKay
Cześć,
Zaawansowany widżet losowych postów to naprawdę dobry plugin, ale mam problem.
Jak można wykluczyć bieżący/aktywny post podczas wyświetlania losowego posta?
Czy można to naprawić?
Problem jest taki sam w przypadku kodu z metody 2.
Harry Stoddart
Użyj zmiennej „Offset”, aby pominąć najnowsze X postów.
Khalil Sillah
Jako początkujący, jakiej listy materiałów potrzebowałbym do nauki WordPressa?
Ahm Clex
Komputer, WiFi i poświęcenie. To wszystko, czego potrzebujesz, aby nauczyć się czegokolwiek w dzisiejszych czasach.
Gaurav Khurana
dzięki za to. zawsze o tym myślałem, ponieważ domyślnie najnowsze posty są widoczne na samej stronie głównej. Dzięki za to, na pewno użyję tej wtyczki.