Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
WPB Cup
25 milionów+
Witryny korzystające z naszych wtyczek
16+
Lata doświadczenia z WordPressem
3000+
Samouczki WordPress od ekspertów

Jak: Powiązane posty z miniaturami w WordPress bez wtyczek

Czy chcesz wyświetlić listę powiązanych postów na swojej stronie WordPress i wolisz używać kodu zamiast wtyczki?

W WPBeginner często podkreślamy znaczenie angażowania odbiorców i zachęcania ich do przeglądania Twoich treści. Jedną z efektywnych strategii, którą widzieliśmy stosowaną na niezliczonych udanych stronach WordPress, jest wyświetlanie powiązanych postów.

Kiedy odwiedzający Twojego bloga skończą czytać interesujący ich artykuł, zaproponowanie listy powiązanych postów utrzyma ich zaangażowanie i pomoże im znaleźć nowe treści do przeczytania.

W tym artykule pokażemy, jak wyświetlać powiązane posty w WordPressie za pomocą kodu, bez potrzeby wtyczki.

Jak: Powiązane posty z miniaturami w WordPress bez wtyczek

Dlaczego wyświetlać powiązane posty w WordPress?

Gdy Twój blog WordPress zaczyna się rozwijać, użytkownikom może być trudniej znaleźć inne posty na ten sam temat.

Wyświetlanie listy powiązanych treści na końcu każdego wpisu na blogu to świetny sposób na zatrzymanie odwiedzających na Twojej stronie internetowej i zwiększenie liczby wyświetleń stron. Pomaga również poprawić widoczność Twoich najważniejszych stron, wyświetlając najlepsze treści tam, gdzie ludzie mogą je łatwo znaleźć.

Jeśli nie znasz się na kodowaniu, łatwiej będzie Ci wybrać jeden z wielu wtyczek do powiązanych postów dla WordPress, które mogą wyświetlać powiązane posty bez kodu.

Ale jeśli kiedykolwiek zastanawiałeś się, czy możesz wyświetlać powiązane posty bez używania wtyczki, podzielimy się dwoma różnymi algorytmami, których możesz użyć do generowania powiązanych postów z miniaturkami, używając samego kodu:

Uwaga: Jeśli chcesz wyświetlić miniaturę z każdym powiązanym postem, upewnij się, że najpierw dodasz obraz wyróżniający do tych postów.

Metoda 1: Jak wyświetlać powiązane posty w WordPressie według tagów

Jednym z efektywnych sposobów lokalizowania powiązanych treści jest wyszukiwanie innych postów, które mają te same tagi. Tagi są często używane do skupienia się na konkretnych szczegółach zawartych w poście.

Mając to na uwadze, możesz chcieć dodać kilka wspólnych tagów do postów, które chcesz ze sobą powiązać. Możesz je wprowadzić w polu „Tagi” w edytorze WordPress.

Pole „Tagi” w edytorze WordPress

Po dodaniu tagów do swoich postów, następnym krokiem jest dodanie następniego fragmentu kodu do szablonu single.php Twojego motywu.

Jeśli potrzebujesz pomocy w dodawaniu kodu do swojej witryny, zapoznaj się z naszym przewodnikiem jak wklejać fragmenty z sieci do WordPress.

$orig_post = $post;
global $post;
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=>5, // Number of related posts that will be shown.
'ignore_sticky_posts'=>1
);
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
   
echo '<div id="relatedposts"><h3>Related Posts</h3><ul>';
   
while( $my_query->have_posts() ) {
$my_query->the_post(); ?>
   
<li><div class="relatedthumb"><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_post_thumbnail(); ?--></a></div>
<div class="relatedcontent">
<h3><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_title(); ?--></a></h3>
<!--?php the_time('M j, Y') ?-->
</div>
</li>
<!--?php }
echo '</ul--></ul></div>';
}
}
$post = $orig_post;
wp_reset_query();

Ten kod wyszukuje tagi powiązane ze stroną, a następnie wykonuje zapytanie do bazy danych, aby pobrać strony z podobnymi tagami.

Gdzie umieścić kod? Zależy to od Twojego motywu, ale w większości przypadków możesz wkleić kod do szablonu single.php swojego motywu, po głównym poście i tuż nad sekcją komentarzy.

Jeśli używasz motywu Twenty Twenty-One, tak jak my na naszej stronie demonstracyjnej, dobrym miejscem do wklejenia kodu jest plik template-parts/content/content-single.php po nagłówku i tuż po <?php the_content();.

Podobne treści według tagów Podgląd

To automatycznie wyświetli powiązane treści w każdym poście WordPress.

Będziesz musiał zmienić styl i wygląd swoich powiązanych postów, aby pasowały do Twojego motywu, dodając niestandardowy CSS.

Przykład powiązanych postów

Wskazówka: Zamiast edytować pliki motywu, co może zepsuć Twoją stronę, zalecamy użycie wtyczki fragmentów kodu, takiej jak WPCode.

WPCode sprawia, że dodawanie niestandardowego kodu w WordPress jest bezpieczne i łatwe. Ponadto, posiada opcje „Wstawianie”, które pozwalają automatycznie wstawiać i wykonywać fragmenty kodu w określonych lokalizacjach na Twojej stronie WordPress, na przykład po poście.

Opcje wstawiania kodu WPCode dla niestandardowych fragmentów kodu

Więcej szczegółów znajdziesz w naszym przewodniku jak łatwo dodawać niestandardowy kod w WordPress. Możesz również zapoznać się z naszą szczegółową recenzją WPCode, aby dowiedzieć się więcej o wtyczce.

Metoda 2: Jak wyświetlać powiązane posty w WordPress według kategorii

Innym sposobem wyświetlania powiązanych treści jest wyświetlanie postów, które znajdują się w tej samej kategorii. Zaletą tej metody jest to, że lista powiązanych postów prawie nigdy nie będzie pusta.

Podobnie jak w Metodzie 1, musisz dodać fragment kodu do szablonu single.php swojego motywu lub do wtyczki do fragmentów kodu, takiej jak WPCode. Aby uzyskać więcej szczegółów, zapoznaj się z Metodą 1 i naszym przewodnikiem na temat jak dodawać niestandardowy kod w WordPress.

$orig_post = $post;
global $post;
$categories = get_the_category($post->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=> 2, // Number of related posts that will be shown.
'ignore_sticky_posts'=>1
);
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
echo '<div id="related_posts"><h3>Related Posts</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post();?>
   
<li><div class="relatedthumb"><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_post_thumbnail(); ?--></a></div>
<div class="relatedcontent">
<h3><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_title(); ?--></a></h3>
<!--?php the_time('M j, Y') ?-->
</div>
</li>
<!--?php }
echo '</ul--></ul></div>';
}
}
$post = $orig_post;
wp_reset_query();

Teraz na dole każdego wpisu zobaczysz listę powiązanych treści.

Jeśli chcesz zmienić styl i wygląd swoich powiązanych stron, musisz dodać niestandardowy CSS, aby pasował do Twojego motywu.

Chcesz dowiedzieć się więcej o wyświetlaniu powiązanych postów w WordPress? Sprawdź te pomocne tutoriale dotyczące powiązanych postów:

Mamy nadzieję, że ten samouczek pomógł Ci dowiedzieć się, jak wyświetlać powiązane posty z miniaturkami w WordPressie bez wtyczek. Możesz również chcieć dowiedzieć się, jak śledzić odwiedzających Twoją witrynę WordPress, lub zapoznać się z naszą listą 24 wskazówek, jak przyspieszyć działanie Twojej witryny.

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.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz w niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak finansowany jest WPBeginner, dlaczego to ważne i jak możesz nas wesprzeć. Oto nasz proces redakcyjny.

Ostateczny zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi – kolekcji produktów i zasobów związanych z WordPress, które powinien mieć każdy profesjonalista!

Interakcje czytelników

184 CommentsLeave a Reply

  1. Powiązane posty to świetny sposób na przyciągnięcie użytkowników do większej ilości treści na Twojej stronie. Po przeczytaniu kilku Twoich artykułów na ten temat, w końcu zrozumiałem moc tej funkcji i zaimplementowałem ją na mojej stronie 404. Teraz, zamiast wyświetlać treść, która już nie istnieje, oferuje ona alternatywy i podobne artykuły moim użytkownikom. Znacznie to zmniejszyło współczynnik odrzuceń mojej strony. Dziękuję nie tylko za ten artykuł, ale także za inne artykuły, które napisałeś na ten temat. Pomogły mi one ulepszyć moją stronę 404.

  2. Próbowałem poprawić powiązane posty WordPress, ale to się nie udawało, gdy zobaczyłem ten kod i użyłem go w moim pliku WordPress, więc teraz moje powiązane posty WordPress pojawiają się poprawnie

  3. Czy jest sposób na powiązane posty na podstawie tytułu posta. Nie mam tagów, a moje kategorie naprawdę nie pomagają, ponieważ nie ma między nimi rozróżnienia.

    Byłoby to bardzo pomocne, gdyby istniał kod do wyświetlania powiązanych treści na podstawie tytułu posta.

    • Thank you for your feedback, this article should currently be using the php version everywhere :)

      Admin

  4. Dziękuję za Twój miły post.

    Tutaj „ignore_sticky_posts” powinno być użyte zamiast „caller_get_posts”. Ponieważ „caller_get_posts” jest przestarzałe.

  5. Czy możesz mi wskazać, gdzie dodać, jakie kategorie chciałbym ograniczyć do powiązanych postów?

    • Ta metoda ogranicza posty do kategorii, w której znajduje się post. Aby ograniczyć kategorie, musiałbyś stworzyć instrukcję warunkową, aby wykluczyć określone kategorie.

      Admin

  6. Czy jest możliwe, że gdy jest więcej niż X powiązanych postów według kategorii, które są powiązane, można losowo wybrać 3 posty?

    • Chociaż jest to możliwe, wymagałoby to dodania znacznie więcej do tego, być może warto rozważyć wtyczkę do tego typu dostosowania.

      Admin

  7. Cześć, czy jest możliwość ograniczenia ich datą? Pokazywania tylko tych z ostatniego roku?

  8. Znalazłem sposób na zmniejszenie miniatur, ale wyświetlają się one w kolumnie, a nie poziomo. Jak można to zmodyfikować?

  9. Skrypt działa dobrze. Jedyny problem, jaki mam, to bardzo duże miniaturki. Czy jest jakiś sposób, aby je zmniejszyć?

  10. jak zrobić skrócony kod dla tego kodu, stworzyłem funkcję, ale nie wiem, jak zwrócić wydruk na stronę.

  11. Cześć,
    Jestem początkujący w WordPressie.
    Chciałbym wyświetlić powiązane posty.
    W głównym menu mam Kategorię A, a w Kategorii A – podkategorie A, B i C. Posty znajdują się w Kategorii A, ale mogą być również obecne we wszystkich 3 podkategoriach.
    Po wybraniu jednego z powiązanych postów coś idzie nie tak i posty z pierwotnie wybranej podkategorii nie wyświetlają się już poprawnie.

  12. Dzięki za tutorial. Było to niezwykle pomocne i działało jak marzenie!

  13. Witaj Administratorze, Bardzo pouczający artykuł. Lubię Twoją stronę ze względu na prostotę i bezpośredniość. Wszystkie artykuły są na temat, ale jeśli chodzi o dzielenie się wiedzą o kodzie, stajesz się zbyt techniczny. Po prostu zignoruj fakt, że wielu odwiedzających nie jest ekspertami od kodowania. Czy nie byłoby znacznie lepiej, gdybyś dodał jeszcze 2 lub 3 linie do swojego wyjaśnienia, aby było kompletne i łatwe do zrozumienia dla wszystkich. Tak czy inaczej, świetny artykuł, ale chcę wiedzieć, jakiego kodu lub wtyczki używa Wpbeginner?

  14. To, co naprawdę jest do bani w twoich artykułach, to to, że nigdy tak naprawdę nie mówisz, JAK coś zrobić. To wszystko jest w porządku, gdy mówisz mi, żebym umieścił kod w moim single.php, ale jako początkujący nie wiem, czym to jest ani gdzie to znaleźć. Możesz pomyśleć o umieszczeniu tego rodzaju krytycznych informacji w swoich artykułach zamiast zakładać, że wiemy, co to znaczy, lub że przeszukaliśmy wszystkie twoje artykuły, aby to rozgryźć.

  15. Dzięki za świetny post, bardzo pomocny. Natknąłem się na błąd w kodzie, więc chciałem się nim podzielić w nadziei, że będzie przydatny dla innych w przyszłości. Błąd brzmiał:

    WP_Query zostało wywołane z argumentem, który jest przestarzały od wersji 3.1.0! „caller_get_posts” jest przestarzały. Użyj zamiast tego „ignore_sticky_posts”.

    Więc po prostu go zastąpiłem i działało dobrze. Używam również przestrzeni nazw, więc musiałem zmienić WP_Query na \WP_Query, a także zmieniłem kolejność poniższego:

    global $post;
    $orig_post = $post;

    Dziękuję jeszcze raz
    Rose

  16. Panie, Używam kodu kategorii, który działa poprawnie, ale jedna rzecz jest taka, że kiedy na stronie głównej ta sama kategoria ma 2 lub 3 posty, link jest czarny, ale chcę, aby pokazywała się kategoria, która jest następnym postem.

  17. Cześć,

    Dziękuję za Twój post. Dodałem kod do content-single.php i zadziałał. Jednak wyświetla się jako 1 kolumna, a nie 3 kolumny, jak w Twoim przykładzie. Czy możesz mi w tym pomóc? Chcę, aby moje powiązane posty były wyświetlane w 1 rzędzie, 3 kolumnach. Dziękuję bardzo.

  18. Cześć,

    Mam opcję „Powiązane posty” z mojego motywu WordPress i już jej używam. Wyświetliłem 6 postów po treści. Problem polega na tym, że pokazuje tylko 3 powiązane posty, a kolejne trzy można zobaczyć, przesuwając je poziomo. Nie chcę tej opcji, chcę, aby strona wyświetlała wszystkie 6 postów od razu. Czy możesz mi powiedzieć, jak to zrobić?

  19. Witam,

    Twoje wskazówki były niesamowite, ale jak mogę wykluczyć konkretną kategorię z powiązanych postów, aby jej nie wyświetlać?

    Dziękuję z góry!
    Z poważaniem,
    LAszlo Gyuricza

  20. Dobre rozwiązanie, ale nie ostateczne dla moich wymagań. W rzeczywistości głównym problemem jest to, że ten kod sortuje powiązane posty od najnowszych w tej samej kategorii lub tagach. Rezultat jest taki, że podczas przeglądania w obrębie kategorii/tagu zawsze wyświetlasz te same kilka ostatnich postów, co znacznie ogranicza dostęp do starszych postów na Twojej stronie. Czy to słuszny wniosek? Proszę, jeśli tego próbowałeś, podziel się swoją opinią!

    • 1. Po ‘caller_get_posts’=>1 dodaj przecinek(,)
      2. Naciśnij przycisk Enter [następna linia]
      3. Dodaj ‘orderby’=>’rand’
      Gotowe. Teraz powiązane posty będą wyświetlane losowo. Dziękujemy.

  21. Ten kod działa świetnie. Zastanawiałem się, czy mógłbyś wyjaśnić, co robi ta część kodu?

    $orig_post = $post;
    global $post;

    $post = $orig_post;

    Myślę, że rozumiem, co robi reszta, ale to mnie wprawia w zakłopotanie.

    Dzięki za wszystkie Twoje świetne treści!

  22. Pozwól, że zapytam o kod powiązanych postów według kategorii opublikowany w miejscach publicznych. Dziękuję.

  23. w domyślnym motywie Twentyfifteen, gdzie powinienem wstawić ten kod w pliku single.php? Jeśli wstawiłem go powyżej endwhile;, pojawia się błąd składni, unexpected ‘endwhile’, a jeśli wstawiłem go poniżej endwhile;, ale powyżej endif;, pojawia się błąd składni, unexpected ‘endif’

    Jakieś rozwiązanie tego problemu?

    Dzięki

  24. W domyślnym motywie Twentyfifteen, gdzie powinienem wstawić ten kod w pliku single.php? Jeśli wstawiłem go przed endwhile; pojawia się błąd składni, nieoczekiwany 'endwhile', a jeśli wstawiłem go poniżej endwhile, ale przed endif; pojawia się błąd składni, nieoczekiwany 'endif'.

    Jakieś rozwiązanie tego problemu?

    Dzięki

  25. Cześć! Świetny post!

    Czy jest sposób, aby połączyć obie opcje, aby wywołać powiązane tagi tylko w bieżącej kategorii?

  26. mój układ single.php:

    //the_content bla bla bla code here

    //Wklej tutaj kod Powiązanych Postów według Tagów

    //comments_template bla bla bla kod tutaj

    ——————————-
    otrzymałem taki błąd: :
    Parse error: syntax error, unexpected ‘endwhile’ (T_ENDWHILE) in …
    ——————————-
    po zmianie ” <? } " na " <?php } " zadziałało,

    just sugestion, maybe it better if you put complete php open tag
    thanks :)

  27. Działa idealnie. Jak wykluczyć konkretny tag z Powiązanych Postów według Tagów? Mam na myśli, jak zmienić kod, aby algorytm znajdował inne posty z jakimkolwiek z tagów (z wyjątkiem tagu 595 na przykład), które ma bieżący post i wyświetlał je.

  28. Dzięki za świetny kod
    Działa świetnie, ale nie dodałeś żadnych kodów CSS, aby nadać tej sekcji ładniejszy wygląd. Czy możesz to zrobić? Jestem początkujący w kodowaniu i próbowałem kilku kodów, ale nie działały. W twoich kodach jest:
    echo ‘Related Posts’;
    ale w niektórych podobnych kodach, które znalazłem w innych zasobach, jest:

    a w CSS niektóre kody, takie jak ten:
    .relatedposts {
    font-size: 12px;
    width: 640px;
    }
    .relatedposts h3 {
    font-size: 20px;
    margin: 0 0 5px;
    }
    nadałyby ładny wygląd, ale nie zadziałały z twoim kodem.
    Dziękuję

  29. Drogi kolego, otrzymuję taki błąd podczas wklejania tego kodu do pliku single.php. Uprzejmie powiedz mi dokładnie, gdzie powinienem wkleić ten kod.

    Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\beingusefull\wp-content\themes\TechPlus\single.php on line 78

  30. To będzie zależeć od Twojego indywidualnego motywu i szablonu. Musisz dodać tag warunkowy po rozpoczęciu pętli WordPress. Po tej linii:
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    • Ja też miałem ten błąd i oto mój zaktualizowany kod:
      ID);
      if ($tags) {
      $tag_ids = array();
      foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
      $args=array(
      ‘tag__in’ => $tag_ids,
      ‘post__not_in’ => array($post->ID),
      ‘posts_per_page’=>5, // Liczba powiązanych postów do wyświetlenia.
      ‘caller_get_posts’=>1
      );
      $my_query = new wp_query( $args );
      if( $my_query->have_posts() ) { ?>
      Powiązane posty
      have_posts() ) : $my_query->the_post(); ?>
      <a href="” rel=”bookmark” title=””>

      <a href="” rel=”bookmark” title=””>

  31. Kiedy udostępniam post na Facebooku, miniatura jest pobierana z powiązanego posta, czy mogę pobrać miniaturę z głównej strony? thx

    • Jeśli używasz wtyczki Yoast WordPress SEO, możesz określić adres URL miniatury w zakładce „Społecznościowe” dla posta. Jeśli zakładka „Społecznościowe” nie jest wyświetlana, musisz kliknąć link Yoast SEO w menu administratora WordPress, a następnie kliknąć „Społecznościowe”. Na stronie „Społecznościowe” zaznacz opcję „Dodaj metadane Open Graph” i zapisz. Wróć do swojego posta i możesz określić obraz miniatury, którego chcesz użyć podczas udostępniania posta. Jeśli nie ustawisz jawnie obrazu posta, użytkownik ma możliwość wybrania dowolnego obrazu, który pojawi się na stronie, dlatego obrazy z Twoich ostatnich postów są pobierane podczas udostępniania linku do artykułu.

  32. Jakieś przemyślenia na temat obciążenia bazy danych/serwera, jakie by to stanowiło dla dużej, samodzielnie hostowanej witryny? Szukam alternatywy dla powiązanych postów, ponieważ #nRelate nie jest już dostępny.

  33. To u mnie nie działa w single.php, ponieważ powiązane posty pojawiają się na samym dole strony. Działa z loop.php, ale wtedy pojawiają się również na stronie głównej – jakieś pomysły na poprawkę, aby wyświetlały się tylko w pojedynczych postach, a nie na stronie głównej?

  34. Cześć, chyba jestem jedyną osobą, która nie robi tego poprawnie. Moje motyw obsługuje obrazy wyróżnione, dodałem ten kod przed komentarzami w pliku single.php. Jakieś wskazówki, gdzie dokładnie wprowadzić kod?

  35. Wszystkie znalezione kody nigdy nie działają. Albo nic nie zmieniają na mojej stronie, albo wyświetlają komunikat o błędzie. Nie wiem, co jeszcze mogę zrobić!

  36. Czy jest sposób na dodanie paginacji do zapytania o powiązane posty? Nie mogę sprawić, by paginacja działała w dodatkowym zapytaniu w pliku single.php. Dziękuję!

  37. Witam, chcę zapytać, czy jest sposób, aby powiązane posty były według kategorii i tagów w jednym miejscu? Dziękuję.

  38. Moje miniatury są za duże, pomóż. Jak można ograniczyć miniatury powiązanych postów?

  39. Czy jest sposób, aby wybrać jedną kategorię (nazwijmy ją Marki), a następnie wyświetlać powiązane posty tylko powiązane z podkategoriami pod Markami? Czyli hierarchia kategorii byłaby Marki > JCPenny. Chcę wyświetlać tylko powiązane posty dla JCPenny. Ale ta podkategoria może być inna dla każdego posta. Więc jeśli post używa innej podkategorii, wyświetli powiązane posty dla tej podkategorii. Czy ten kod można zmodyfikować, aby jakoś to obsłużyć?

  40. Cześć, dzięki za kod, ale zamiast pobierać obraz wyróżniony jako miniaturkę, czy mogę zamiast tego pobrać pierwszy obraz z moich postów? Dzięki

      • Byłoby wspaniale, gdybyście zrobili o tym post. Dziękuję bardzo i będę czekać. Mam nadzieję, że uprzejmie opublikujecie tutaj powiadomienie, gdy tylko zrobicie post, abyśmy wiedzieli.

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszą polityką komentowania, a Twój adres e-mail NIE zostanie opublikowany. Prosimy NIE używać słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.