Tutoriale WordPress de încredere, atunci când aveți cea mai mare nevoie.
Ghidul începătorului pentru WordPress
Cupa WPB
25 de milioane+
Site-uri web care folosesc plugin-urile noastre
16+
Ani de experiență WordPress
3000+
Tutoriale WordPress de la experți

Cum: Postări similare cu miniaturi în WordPress fără plugin-uri

Doriți să afișați o listă de postări similare pe site-ul dvs. WordPress și preferați să folosiți codul în loc de un plugin?

La WPBeginner, subliniem adesea importanța implicării audienței dvs. și menținerii acesteia în explorarea conținutului dvs. O strategie eficientă pe care am văzut-o utilizată pe nenumărate site-uri WordPress de succes este afișarea postărilor similare.

Când vizitatorii blogului tău au terminat de citit un articol care îi interesează, oferirea unei liste de articole similare îi va menține implicați și îi va ajuta să găsească conținut nou de citit.

În acest articol, vă vom arăta cum să afișați postări similare cu WordPress folosind cod, fără a fi necesar un plugin.

Cum: Articole similare cu miniaturi în WordPress fără plugin-uri

De ce să afișezi articole similare în WordPress?

Când blogul tău WordPress începe să crească, poate deveni mai dificil pentru utilizatori să găsească alte articole pe același subiect.

Afișarea unei liste de conținuturi conexe la sfârșitul fiecărui articol de blog este o modalitate excelentă de a-ți menține vizitatorii pe site și de a crește numărul de vizualizări ale paginilor. De asemenea, ajută la îmbunătățirea vizibilității paginilor tale cele mai importante, afișând cel mai bun conținut acolo unde oamenii îl pot găsi cu ușurință.

Dacă nu ești familiarizat cu codul, atunci vei găsi mai simplu să alegi unul dintre numeroasele pluginuri WordPress pentru postări similare care pot afișa postări similare fără cod.

Dar, dacă v-ați întrebat vreodată dacă puteți afișa postări similare fără a folosi un plugin, vă vom împărtăși doi algoritmi diferiți pe care îi puteți folosi pentru a genera postări similare cu miniaturi folosind doar cod:

Notă: Dacă doriți să afișați o miniatură cu fiecare postare similară, asigurați-vă că mai întâi adăugați o imagine de prezentare la acele postări.

Metoda 1: Cum să afișați postări similare în WordPress după etichete

O modalitate eficientă de a localiza conținut similar este să căutați alte postări care au aceleași etichete. Etichetele sunt adesea folosite pentru a se concentra pe detaliile specifice conținute într-o postare.

Având în vedere acest lucru, ați putea dori să adăugați câteva etichete comune la postările pe care doriți să le legați una de alta. Le puteți introduce în caseta „Etichete” din editorul WordPress.

Caseta de setări „Etichete” în editorul WordPress

După ce ați adăugat etichete la postările dvs., următorul pas este să adăugați următorul fragment de cod în șablonul single.php al temei dvs.

Dacă aveți nevoie de ajutor pentru a adăuga cod pe site-ul dvs., consultați ghidul nostru despre cum să copiați fragmente de pe web în 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();

Acest cod caută etichete asociate cu o pagină și apoi rulează o interogare în baza de date pentru a prelua pagini cu etichete similare.

Unde ar trebui să plasați codul? Aceasta depinde de tema dvs., dar în majoritatea cazurilor, ar trebui să puteți lipi codul în șablonul single.php al temei dvs., după postarea principală și chiar deasupra secțiunii de comentarii.

Dacă utilizați tema Twenty Twenty-One, așa cum facem noi pe site-ul nostru demo, atunci un loc bun pentru a lipi codul este în fișierul template-parts/content/content-single.php după antet și imediat după <?php the_content();.

Previzualizare conținut asociat după etichete

Aceasta va afișa automat conținutul asociat pe orice postare WordPress.

Va trebui să schimbați stilul și aspectul postărilor dvs. similare pentru a se potrivi temei dvs. prin adăugarea de CSS personalizat.

Exemplu de articole similare

Sfat: În loc să editați fișierele temei, ceea ce ar putea defecta site-ul dvs., recomandăm utilizarea unui plugin pentru fragmente de cod, cum ar fi WPCode.

WPCode face ca adăugarea de cod personalizat în WordPress să fie sigură și ușoară. În plus, vine cu opțiuni de „Inserare” care vă permit să inserați și să executați automat fragmente în locații specifice pe site-ul dvs. WordPress, cum ar fi după o postare.

Opțiuni de inserare WPCode pentru fragmente de cod personalizate

Pentru mai multe detalii, consultați ghidul nostru despre cum să adăugați cod personalizat în WordPress. Puteți, de asemenea, să consultați recenzia noastră detaliată WPCode pentru a afla mai multe despre plugin.

Metoda 2: Cum să afișați articole similare în WordPress pe categorii

Un alt mod de a afișa conținut similar este să listați postările care se află în aceeași categorie. Avantajul acestei metode este că lista de postări similare aproape niciodată nu va fi goală.

La fel ca Metoda 1, trebuie să adăugați un fragment de cod în șablonul single.php al temei dvs. sau într-un plugin de fragmente de cod, cum ar fi WPCode. Pentru mai multe detalii, consultați Metoda 1 și ghidul nostru despre cum să adăugați cod personalizat în 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();

Acum vei vedea o listă de conținut similar în partea de jos a fiecărui articol.

Dacă doriți să modificați stilul și aspectul paginilor dvs. asociate, atunci va trebui să adăugați CSS personalizat pentru a se potrivi temei dvs.

Doriți să aflați mai multe despre afișarea postărilor similare în WordPress? Consultați aceste tutoriale utile despre postări similare:

Sperăm că acest tutorial v-a ajutat să învățați cum să afișați postări similare cu miniaturi în WordPress fără plugin-uri. De asemenea, ați putea dori să învățați cum să urmăriți vizitatorii site-ului dvs. WordPress, sau să consultați lista noastră cu 24 de sfaturi pentru a accelera site-ul dvs..

Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Dezvăluire: Conținutul nostru este susținut de cititori. Acest lucru înseamnă că dacă faceți clic pe unele dintre linkurile noastre, este posibil să câștigăm un comision. Vedeți cum este finanțat WPBeginner, de ce contează și cum ne puteți susține. Iată procesul nostru editorial.

Cel mai bun instrumentar WordPress

Obține acces GRATUIT la instrumentarul nostru - o colecție de produse și resurse legate de WordPress pe care fiecare profesionist ar trebui să le aibă!

Interacțiuni cu cititorii

184 CommentsLeave a Reply

  1. Salut,

    Am o opțiune „Postări similare” de la tema mea WordPress și o folosesc deja. Am afișat 6 postări după conținut. Problema este că afișează doar 3 postări similare, iar următoarele trei pot fi văzute când glisați orizontal. Nu vreau acea opțiune, vreau ca site-ul să afișeze toate cele 6 postări direct. Îmi puteți spune cum să fac asta?

  2. Salut,

    Ghidarea dvs. a fost uimitoare, dar cum pot exclude o categorie specifică din postările similare pentru a nu o afișa?

    Mulțumesc, anticipat!
    Cu stimă,
    LAszlo Gyuricza

  3. Soluție bună, dar nu definitivă pentru cerințele mele. De fapt, problema principală este că acest cod sortează postările înrudite de la cele mai recente din aceeași categorie sau etichetă. Rezultatul este că atunci când navigați într-o categorie/etichetă, veți afișa întotdeauna aceleași ultime postări, limitând cu greu postările mai vechi de pe site-ul dvs. Aceasta este o concluzie corectă? Vă rog, dacă ați încercat-o, împărtășiți-vă părerea!

    • 1. După ‘caller_get_posts’=>1 pune o virgulă(,)
      2. Apasă butonul Enter [linie nouă]
      3. Adaugă ‘orderby’=>’rand’
      Ai terminat. Acum vor fi afișate postări similare aleatoriu. Mulțumesc.

  4. Acest cod funcționează excelent. Mă întrebam dacă ai putea explica ce face această parte a codului?

    $orig_post = $post;
    global $post;

    $post = $orig_post;

    Cred că am înțeles ce face restul, dar asta mă dă peste cap.

    Mulțumesc pentru tot conținutul tău grozav!

  5. Permiteți-mi să întreb despre Codul Postări înrudite după Categorie postat în locuri publice. Mulțumesc.

  6. în tema implicită Twentyfifteen, unde ar trebui să inserez acest cod în fișierul single.php? Dacă l-am inserat deasupra endwhile;, apare o eroare de sintaxă, 'endwhile' neașteptat, iar dacă l-am inserat sub endwhile;, dar deasupra endif;, apare o eroare de sintaxă, 'endif' neașteptat

    Vreo soluție pentru asta?

    Mulțumesc

  7. În tema implicită Twentyfifteen, unde ar trebui să inserez acest cod în fișierul single.php? Dacă l-am inserat deasupra enwhile; apare o eroare de sintaxă, 'endwhile' neașteptat, iar dacă l-am inserat sub enwwile, dar deasupra endif; apare o eroare de sintaxă, 'endif' neașteptat.

    Vreo soluție pentru asta?

    Mulțumesc

  8. Salut! Postare grozavă!

    Există o modalitate de a combina ambele opțiuni, pentru a apela etichete similare doar în categoria curentă?

  9. aspectul fișierului meu single.php:

    //the_content bla bla bla code here

    //Copiați și lipiți codul Related Posts by Tags aici

    //comments_template bla bla bla cod aici

    ———————————
    rezultatul pe care l-am obținut a fost o eroare :
    Eroare de analiză: eroare de sintaxă, ‘endwhile’ neașteptat (T_ENDWHILE) în …
    ———————————
    după ce am schimbat ” <? } " în " <?php } " a funcționat,

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

  10. Funcționează perfect. Cum să exclud eticheta definită din Related Posts by Tags? Mă refer la cum să modific codul atunci când algoritmul va găsi alte postări cu oricare dintre etichetele (cu excepția etichetei 595, de exemplu) pe care le are postarea curentă și le va lista.

  11. Mulțumesc pentru codul grozav
    Funcționează excelent, dar nu ați inclus niciun cod CSS pentru un aspect mai frumos al acestei secțiuni. Puteți face acest lucru, vă rog? Sunt începător în codare și am încercat niște coduri, dar nu au funcționat. În codurile dumneavoastră există:
    echo ‘Related Posts’;
    , dar în alte coduri similare pe care le-am găsit în alte resurse există:

    și în css niște coduri de genul acesta:
    .relatedposts {
    font-size: 12px;
    width: 640px;
    }
    .relatedposts h3 {
    font-size: 20px;
    margin: 0 0 5px;
    }
    vor oferi un aspect plăcut, dar nu a funcționat cu codul tău.
    Mulțumesc

  12. Dragă coleg, aceasta este o eroare pe care o primesc în timp ce lipesc acest cod în fișierul single.php. Te rog să-mi spui exact unde ar trebui să lipesc acest cod.

    Eroare de analiză: eroare de sintaxă, sfârșit neașteptat de fișier în C:\xampp\htdocs\beingusefull\wp-content\themes\TechPlus\single.php la linia 78

  13. Aceasta va depinde de tema și șablonul dvs. individual. Trebuie să adăugați eticheta condițională după ce începe bucla WordPress. După această linie:
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    • Am primit și eu acea eroare și acesta este codul meu actualizat:
      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, // Numărul de postări înrudite care vor fi afișate.
      ‘caller_get_posts’=>1
      );
      $my_query = new wp_query( $args );
      if( $my_query->have_posts() ) { ?>
      Postări înrudite
      have_posts() ) : $my_query->the_post(); ?>
      <a href="” rel=”bookmark” title=””>

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

  14. Când postarea pe care o partajez pe Facebook, miniatura este preluată din postarea similară, pot obține miniatura din pagina principală? mulțumesc

    • Dacă folosiți pluginul Yoast WordPress SEO, puteți specifica URL-ul miniaturii sub fila socială pentru postare. Dacă fila socială nu este afișată, atunci trebuie să faceți clic pe linkul Yoast SEO din meniul de administrare WordPress, apoi să faceți clic pe „Social”. În pagina socială, bifați opțiunea „Adăugați metadate Open Graph” și salvați. Reveniți la postarea dvs. și puteți specifica imaginea miniaturii pe care doriți să o utilizați atunci când postarea este partajată. Dacă nu setați implicit imaginea postării, utilizatorul are opțiunea de a selecta orice imagine care apare pe pagină, motiv pentru care imaginile postărilor dvs. recente sunt preluate atunci când partajați linkul articolului.

  15. Aveți idei despre cât de mare ar fi sarcina pe baza de date/server pentru un site mare auto-găzduit? Caut o alternativă la postări similare acum că #nRelate nu mai este disponibil.

  16. Acest lucru nu funcționează în single.php pentru mine, deoarece postările înrudite apar în partea de jos a paginii. Funcționează cu loop.php, dar apoi apar și pe pagina principală – aveți idei pentru o soluție, astfel încât să apară doar în postările individuale și nu pe pagina principală?

  17. Salut, trebuie să fiu singurul care nu face asta corect. Tema mea suportă imagini de prezentare, am adăugat acest cod înainte de comentarii în fișierul single.php. Aveți sfaturi despre exact unde să introduc codul?

  18. Toate codurile pe care le găsesc nu funcționează niciodată. Sau nu schimbă nimic pe pagina mea sau afișează un mesaj de eroare. Nu știu ce altceva să fac!

  19. Există o modalitate de a adăuga paginare la interogarea postărilor similare? Nu reușesc să fac paginarea să funcționeze pe o interogare secundară în single.php. Mulțumesc!

  20. Salut, vreau să întreb, există o modalitate de a face ca postările înrudite să fie după categorie și tag-uri într-un singur loc? Mulțumesc.

  21. Există o modalitate de a alege o singură categorie (să o numim Mărci) și apoi să afișeze postări similare doar afiliate categoriilor copil sub Mărci? Deci, ierarhia categoriilor ar fi Mărci > JCPenny. Vreau să afișez doar postări similare pentru JCPenny. Dar, acea categorie copil ar putea fi diferită pentru fiecare postare. Deci, dacă o postare folosește o altă categorie copil, va afișa postări similare pentru acea categorie copil. Poate fi modificat acest cod pentru a gestiona asta cumva?

  22. Salut, mulțumesc pentru cod, dar în loc să preiau imaginea de pe prima pagină ca miniatură, pot prelua în schimb prima imagine din postările mele? Mulțumesc

      • Ar fi grozav dacă ați face o postare despre asta. Vă mulțumesc foarte mult și voi aștepta. Sper că puteți posta aici o notificare odată ce ați făcut postarea, ca să știm.

  23. Postare grozavă, mulțumesc! Rulez un site web care folosește WP mai mult ca un CMS cu un număr mare de pagini decât postări. Pot face acest lucru cu pagini similare în schimb, astfel încât să preia pagini similare și nu postări? Dacă da, cum procedez.

    Thanks for the help :)

  24. Asta. E. Fantastic. WPEngine în mod înțelegător nu permite pluginuri pentru postări similare, cu puține excepții. Am încercat câteva și chiar nu mi-au plăcut. Am introdus acest cod în single.php și gata! Mulțumesc.

  25. Acesta este bun, dar vreau să o fac cu titlul postării în loc de etichete sau categorii. Sugestii pentru asta, syed!!

  26. Salut prieteni, am o mică problemă: „Eroare de analiză: eroare de sintaxă, neașteptat „endwhile” (T_ENDWHILE) în C:\xampp\htdocs\z1\wp-content\themes\mytheme\single.php la linia 65” găsiți
    Dar ce..? Mulțumesc

  27. Îmi place această bucată de cod, o folosesc în mod regulat! O întrebare: Există o modalitate de a exclude anumite etichete din cod?

  28. Aruncați o privire la codul postărilor înrudite din categorie. Nu va funcționa decât dacă adăugați niște php, cele trei litere înainte de a începe cu echo. Adăugați php și nu va fi ignorat. În oricare dintre cazuri, este ignorat și WordPress plânge de fiecare dată cu o notă de eroare. Mulțumesc oricum pentru cod și mi-a ușurat mult munca. Mulțumesc enorm pentru asta și vă rog să-l ajustați,

  29. De asemenea, mai am o întrebare,

    Ce se întâmplă dacă aș dori să afișez o anumită postare care conține o anumită etichetă pe toate postările, cum aș face acest lucru?

  30. Salut, asta e grozav! Acum pot renunța la pluginul meu pentru postări similare, deci mulțumesc FOARTE MULT pentru asta!

    O întrebare pe care o am este, cum pot afișa postările înrudite pe 2 coloane?

    Încă o dată, acest lucru mi-a fost de MARE ajutor!

  31. Salut!! Mulțumesc pentru informațiile utile pentru cei care, ca mine, nu au nicio idee despre codare, dar totuși doresc să aibă un blog!! Tocmai am încorporat codul dvs. „postări similare pe etichete” în fișierul meu de postări unice. Funcționează, cu excepția fotografiilor. Nu apar deloc, iar titlurile postărilor mele similare sunt afișate una sub alta, ca o listă. Ce am greșit?? Mulțumesc anticipat pentru răspuns!!

  32. Salut,

    Acest cod este uimitor! Mulțumesc mult. Există o modalitate prin care pot face codul să afișeze postări similare de pe ALT SITE? Deci caută postările de pe un alt site pe care îl afișez mai jos de postare ca postare similară pe site-ul meu?

    Mulțumesc!

  33. Bună,
    Folosesc o temă care funcționează cu postări personalizate. Mă întreb dacă încerc codul dvs., ce parte ar trebui să editez pentru a afișa doar acele postări personalizate în loc de postările obișnuite.

    Mulțumesc

  34. Salut – tutorialul dvs. este primul pe care l-am găsit care funcționează, dar aș dori ca lista să fie verticală. Puteți oferi un exemplu de CSS pentru asta?

  35. Salut,

    Nu pot găsi fișierul single.php unde trebuie să inserez acest cod.

    Problema este că folosesc tema Balance + Genesis. Deci, în Genesis, pot găsi Single.php, dar scrie „Nu editați în nicio circumstanță”, și de fapt am lipit codul acolo, dar site-ul meu a încetat să se mai deschidă deloc.
    Și în tema copil Balance, nu există Single.php....

    Sugestii?

    • Da, nu edita fișierul framework. Va trebui să te familiarizezi cu hook-urile și filtrele Genesis. Apoi adaugă codul într-unul dintre hook-urile de buclă pentru pagina unică folosind fișierul functions.php. Din păcate, din cauza numărului de framework-uri existente, nu putem acoperi sfaturile noastre pentru toate framework-urile.

      Admin

  36. Salut, există vreo modalitate de a schimba dimensiunea miniaturi? primesc o singură postare înrudită și miniatura ei este uriașă

  37. Salut! acest cod este foarte util. Este posibil să folosiți acest lucru pentru a crea o pagină personalizată care să afișeze toate postările, ca o hartă a site-ului, dar cu miniaturi? Ceva de genul acesta:

    Categorie 1
    —– cod postări similare (toate postările din acea categorie) ——

    Categorie 2
    —– cod postări similare (toate postările din acea categorie) ——

    etc. Ar crea o prezentare excelentă pentru categoriile cu puține postări. Vă mulțumesc pentru lectură și ajutor!

  38. Salut,

    foarte utilă „Postări similare pe categorii”.

    Uneori cred că este mai bine să adaugi un cod brut decât să folosești un plugin care nu este atât de extensibil...

    Mulțumesc!

  39. Thank you thank you thank you!! A simple copy paste bit of code that just gets on with it and works – does exactly what it says. This is exactly what I was looking for :)

  40. Ce se întâmplă dacă nu există postări similare. Poate fi codificat astfel încât să revină la postările similare din categorie.

  41. salut!

    am nevoie de ajutor…

    Cum pot filtra.. categoria, dar dacă am categorii părinte și copil și afișez doar postarea copilului. ex:

    – produs (toate produsele, acesta este părintele) (id 104)

    – KindOfProducts (subcategorie, acesta este copilul) (id 109)

    – KindOfProductsTwo (subcategorie, acesta este copilul) (id 110)

    în produse sunt toate postările, dar trebuie doar să afișeze similare din copil: KindOfProducts.

    încerc cu asta:

    $args = array(

    ‘category__in’ => $category_ids,

    ‘category__not_in’ => 104,

    ‘post__not_in’ => array($post->ID),

    ‘orderby’=> ‘rand’,

    ‘showposts’ => 100,

    ‘ignore_sticky_posts’ => 1

    );

    dar nu-mi arată nimic...

    și încerc cu acesta celălalt:

    $args = array(

    ‘category__in’ => $category_ids,

    ‘child_of’ => 104,

    ‘post__not_in’ => array($post->ID),

    ‘orderby’=> ‘rand’,

    ‘showposts’ => 100,

    ‘ignore_sticky_posts’ => 1

    );

    și nimic

    ajutor? mulțumesc!

Lasă un răspuns

Vă mulțumim că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de comentarii, iar adresa dvs. de e-mail NU va fi publicată. Vă rugăm să NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.