Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Come: Post correlati con miniature in WordPress senza plugin

Vuoi visualizzare un elenco di post correlati sul tuo sito WordPress e preferisci usare il codice piuttosto che un plugin?

Su WPBeginner, sottolineiamo spesso l'importanza di coinvolgere il tuo pubblico e mantenerlo alla scoperta dei tuoi contenuti. Una strategia efficace che abbiamo visto utilizzare su innumerevoli siti WordPress di successo è la visualizzazione di post correlati.

Quando i visitatori del tuo blog hanno finito di leggere un articolo che li interessa, offrire un elenco di post correlati li manterrà coinvolti e li aiuterà a trovare nuovi contenuti da leggere.

In questo articolo, ti mostreremo come visualizzare post correlati con WordPress usando il codice, senza bisogno di plugin.

Come fare: Post correlati con miniature in WordPress senza plugin

Perché mostrare post correlati in WordPress?

Quando il tuo blog WordPress inizia a crescere, può diventare più difficile per gli utenti trovare altri post sullo stesso argomento.

Visualizzare un elenco di contenuti correlati alla fine di ogni post del blog è un ottimo modo per mantenere i tuoi visitatori sul tuo sito e aumentare le visualizzazioni di pagina. Aiuta anche a migliorare la visibilità delle tue pagine più importanti mostrando i tuoi migliori contenuti dove le persone possono trovarli facilmente.

Se non hai familiarità con il codice, troverai più semplice scegliere uno dei tanti plugin per post correlati di WordPress che possono visualizzare post correlati senza codice.

Ma, se ti sei mai chiesto se puoi visualizzare post correlati senza usare un plugin, condivideremo due diversi algoritmi che puoi utilizzare per generare post correlati con miniature usando solo il codice:

Nota: Se desideri mostrare una miniatura con ogni post correlato, assicurati prima di aggiungere un'immagine in evidenza a tali post.

Metodo 1: Come mostrare post correlati in WordPress tramite tag

Un modo efficiente per individuare contenuti correlati è cercare altri post che condividono gli stessi tag. I tag vengono spesso utilizzati per concentrarsi sui dettagli specifici contenuti in un post.

Tenendo presente questo, potresti voler aggiungere alcuni tag comuni ai post che desideri mettere in relazione tra loro. Puoi inserirli nella casella 'Tag' nell'editor di WordPress.

La casella delle impostazioni 'Tag' nell'editor di WordPress

Dopo aver aggiunto i tag ai tuoi post, la cosa successiva da fare è aggiungere il seguente snippet di codice al template single.php del tuo tema.

Se hai bisogno di aiuto per aggiungere codice al tuo sito, consulta la nostra guida su come incollare snippet dal web in 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();

Questo codice cerca i tag associati a una pagina ed esegue quindi una query al database per recuperare pagine con tag simili.

Dove dovresti posizionare il codice? Dipende dal tuo tema, ma nella maggior parte dei casi, dovresti essere in grado di incollare il codice nel template single.php del tuo tema dopo il post principale e subito prima della sezione commenti.

Se stai usando il tema Twenty Twenty-One, come facciamo sul nostro sito demo, allora un buon posto dove incollare il codice è nel file template-parts/content/content-single.php dopo l'header e subito dopo <?php the_content();.

Anteprima contenuti correlati per tag

Questo visualizzerà automaticamente contenuti correlati su qualsiasi post di WordPress.

Dovrai modificare lo stile e l'aspetto dei tuoi post correlati per farli corrispondere al tuo tema aggiungendo CSS personalizzato.

Esempio post correlati

Suggerimento: Invece di modificare i file del tuo tema, cosa che potrebbe compromettere il tuo sito web, ti consigliamo di utilizzare un plugin per snippet di codice come WPCode.

WPCode rende sicuro e facile aggiungere codice personalizzato in WordPress. Inoltre, offre opzioni di 'Inserimento' che ti consentono di inserire ed eseguire automaticamente snippet in posizioni specifiche del tuo sito WordPress, come dopo un post.

Opzioni di inserimento WPCode per snippet di codice personalizzati

Per maggiori dettagli, consulta la nostra guida su come aggiungere codice personalizzato in WordPress. Puoi anche consultare la nostra recensione dettagliata di WPCode per saperne di più sul plugin.

Metodo 2: Come mostrare post correlati in WordPress tramite categoria

Un altro modo per visualizzare contenuti correlati è elencare i post che appartengono alla stessa categoria. Il vantaggio di questo metodo è che l'elenco dei post correlati non sarà quasi mai vuoto.

Come il Metodo 1, è necessario aggiungere uno snippet di codice al template single.php del tuo tema o in un plugin per snippet di codice come WPCode. Per maggiori dettagli, fai riferimento al Metodo 1 e alla nostra guida su come aggiungere codice personalizzato in 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();

Ora vedrai un elenco di contenuti correlati in fondo a ogni post.

Se desideri modificare lo stile e l'aspetto delle tue pagine correlate, dovrai aggiungere CSS personalizzato per abbinarlo al tuo tema.

Vuoi saperne di più sulla visualizzazione di post correlati in WordPress? Dai un'occhiata a questi utili tutorial sui post correlati:

Speriamo che questo tutorial ti abbia aiutato a imparare come visualizzare post correlati con miniature in WordPress senza plugin. Potresti anche voler imparare come tracciare i visitatori sul tuo sito WordPress, o dare un'occhiata alla nostra lista di 24 suggerimenti per velocizzare il tuo sito web.

Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

184 CommentsLeave a Reply

  1. Ciao,

    Ho un'opzione 'Post correlati' dal mio tema WordPress e la sto già utilizzando. Ho visualizzato 6 post dopo il contenuto. Il problema è che mostra solo 3 post correlati e i successivi tre sono visibili quando si scorre orizzontalmente. Non voglio quell'opzione, voglio che il sito visualizzi tutti e 6 i post direttamente. Puoi dirmi come fare?

  2. Salve,

    La tua guida è stata fantastica, ma come posso escludere una categoria specifica dai post correlati per non visualizzarla?

    Grazie in anticipo!
    Cordiali saluti,
    LAszlo Gyuricza

  3. Bella soluzione ma non definitiva per le mie esigenze. Infatti il problema principale è che questo codice ordina i post correlati dai più recenti nella stessa categoria o tag. Il risultato è che quando navighi all'interno di una categoria/tag visualizzerai sempre gli stessi pochi ultimi post, limitando duramente i post più vecchi del tuo sito. Questa è una conclusione corretta? Per favore, se l'hai provato, condividi la tua opinione!

    • 1. Dopo ‘caller_get_posts’=>1 metti una virgola(,)
      2. Premi il tasto invio [nuova riga]
      3. Aggiungi ‘orderby’=>’rand’
      Fatto. Ora verranno visualizzati post correlati in modo casuale. Grazie.

  4. Questo codice funziona benissimo. Mi chiedevo se potessi spiegare cosa fa questa parte del codice?

    $orig_post = $post;
    global $post;

    $post = $orig_post;

    Penso di aver capito cosa fa il resto, ma questo mi sta confondendo.

    Grazie per tutti i tuoi ottimi contenuti!

  5. nel tema predefinito Twentyfifteen dove dovrei inserire questo codice nel file single.php? Se l'ho inserito sopra endwhile; mostra un errore di sintassi, 'endwhile' inatteso e se l'ho inserito sotto endwhile; ma sopra endif; mostra un errore di sintassi, 'endif' inatteso

    C'è una soluzione per questo?

    Grazie

  6. nel tema predefinito Twentyfifteen dove dovrei inserire questo codice nel file single.php? Se l'ho inserito sopra enwhile; mostra un errore di sintassi, 'endwhile' inatteso e se l'ho inserito sotto enwwile ma sopra endif; mostra un errore di sintassi, 'endif' inatteso

    C'è una soluzione per questo?

    Grazie

  7. Ciao! Ottimo post!

    C'è un modo per combinare entrambe le opzioni, in modo da chiamare i tag correlati solo nella categoria corrente?

  8. il mio layout di single.php:

    //the_content bla bla bla codice qui

    //Copia incolla codice Related Posts by Tags qui

    //comments_template bla bla bla codice qui

    ———————————
    il risultato che ho ottenuto è un errore:
    Parse error: syntax error, unexpected ‘endwhile’ (T_ENDWHILE) in …
    ———————————
    dopo aver cambiato " <? } " in " <?php } " ha funzionato,

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

  9. Funziona perfettamente. Come escludere un tag specifico da Related Posts by Tags? Intendo come cambiare il codice quando l'algoritmo troverà altri post con uno qualsiasi dei tag (eccetto il tag 595 per esempio) che ha il post corrente e li elencherà.

  10. Grazie per il fantastico codice
    Funziona benissimo ma non hai inserito alcun codice CSS per un aspetto più gradevole per questa sezione. Puoi farlo per favore? Sono un principiante in programmazione e ho provato alcuni codici ma non hanno funzionato. Nei tuoi codici c'è:
    echo ‘Related Posts’;
    ma in alcuni codici simili che ho trovato in altre risorse c'è:

    e in CSS alcuni codici come questo:
    .relatedposts {
    font-size: 12px;
    width: 640px;
    }
    .relatedposts h3 {
    font-size: 20px;
    margin: 0 0 5px;
    }
    darebbero un bell'aspetto ma non ha funzionato con il tuo codice.
    Grazie

  11. Caro collega, questo è un errore che sto riscontrando incollando questo codice nel file single.php. Potresti dirmi esattamente dove dovrei incollare questo codice.

    Errore di analisi: errore di sintassi, fine file inattesa in C:\xampp\htdocs\beingusefull\wp-content\themes\TechPlus\single.php alla riga 78

  12. Ciò dipenderà dal tuo tema e modello individuali. Devi aggiungere il tag condizionale dopo l'inizio del loop di WordPress. Dopo questa riga:
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    • Ho riscontrato lo stesso errore e questo è il mio codice aggiornato:
      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, // Numero di post correlati che verranno mostrati.
      ‘caller_get_posts’=>1
      );
      $my_query = new wp_query( $args );
      if( $my_query->have_posts() ) { ?>
      Post Correlati
      have_posts() ) : $my_query->the_post(); ?>
      <a href="” rel=”bookmark” title=””>

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

  13. Quando il post che condivido su Facebook, la miniatura viene presa dal post correlato, posso ottenere la miniatura dalla pagina principale? grazie

    • Se stai usando il plugin Yoast WordPress SEO, puoi specificare l'URL della miniatura nella scheda social per il post. Se la scheda social non viene visualizzata, devi fare clic sul link Yoast SEO nel menu di amministrazione di WordPress, quindi fare clic su "Social". Nella pagina social, seleziona l'opzione "Aggiungi metadati Open Graph" e salva. Torna al tuo post e potrai specificare l'immagine in miniatura che desideri utilizzare quando il post viene condiviso. Se non imposti esplicitamente l'immagine del post, l'utente ha la possibilità di selezionare qualsiasi immagine che appare nella pagina, motivo per cui le immagini dei tuoi post recenti vengono visualizzate quando condividi il link dell'articolo.

  14. Qualche idea su quanto carico di database/server comporterebbe questo su un sito self-hosted di grandi dimensioni? Sto cercando un'alternativa ai post correlati ora che #nRelate non è più disponibile.

  15. Questo non funziona in single.php per me, perché i post correlati appaiono in fondo alla pagina. Funziona con loop.php ma poi appaiono anche sulla homepage - qualche idea per una soluzione in modo che appaiano solo nei post singoli e non sulla homepage?

  16. Ciao, devo essere l'unica a non fare questo correttamente. Il mio tema supporta le immagini in evidenza, ho aggiunto questo codice prima dei commenti all'interno del file single.php. Qualche consiglio su dove esattamente inserire il codice?

  17. C'è un modo per aggiungere la paginazione alla query dei post correlati? Non riesco a far funzionare la paginazione su una query secondaria all'interno di single.php. Grazie!

  18. Ciao, vorrei chiedere, c'è un modo per fare in modo che i post correlati siano per categoria e tag in un unico posto? Grazie.

  19. Le mie miniature sono troppo grandi, aiuto. Come si possono limitare le miniature dei post correlati?

  20. C'è un modo per scegliere una singola categoria (chiamiamola Marche) e poi far visualizzare post correlati solo affiliati alle categorie figlie sotto Marche? Quindi, la gerarchia per le categorie sarebbe Marche > JCPenny. Voglio mostrare solo post correlati per JCPenny. Ma, quella categoria figlia potrebbe essere diversa per post. Quindi se un post usa una categoria figlia diversa, mostrerà post correlati per quella categoria figlia. Questo codice può essere modificato per gestire in qualche modo questo?

  21. Ciao, grazie per il codice, ma invece di prendere l'immagine in evidenza come miniatura, posso invece prendere la prima immagine nei miei post? Grazie

      • Sarebbe fantastico se lo trattaste in un post. Grazie mille e attenderò. Spero che possiate gentilmente pubblicare qui una notifica una volta che avrete pubblicato il post, così sapremo.

  22. Ottimo post grazie! Gestisco un sito web che utilizza WP più come un CMS con un gran numero di pagine piuttosto che post. Posso farlo con pagine correlate invece, in modo che prenda pagine correlate e non post? Se sì, come posso fare.

    Thanks for the help :)

  23. Questo. È. Fantastico. WPEngine comprensibilmente non consente plugin per post correlati, salvo poche eccezioni. Ne ho provati alcuni e non mi sono piaciuti. Ho inserito questo codice in single.php e voilà! Grazie.

  24. Questo è buono, ma vorrei farlo con il titolo del post invece che con tag o categorie. Suggerimenti in merito, syed!!

  25. Ciao amici piccolo problema mi si presenta: "Parse error: syntax error, unexpected 'endwhile' (T_ENDWHILE) in C:\xampp\htdocs\z1\wp-content\themes\mytheme\single.php on line 65" trovate
    Ma che..? Grazie

  26. Adoro questo pezzo di codice, lo uso regolarmente! Una domanda: c'è un modo per escludere alcuni tag nel codice?

  27. Dai un'occhiata al codice dei post correlati per categoria. Non funzionerà a meno che tu non aggiunga del php, le tre lettere prima di iniziare con echo. Aggiungi php e non verrà ignorato. In entrambi i casi, viene ignorato e wordpress piange ogni volta con una nota di errore. Grazie per il codice comunque e ha reso il mio lavoro molto più facile. Grazie mille per questo e aggiustalo,

  28. Inoltre, ho un'altra domanda,

    E se volessi visualizzare un certo post contenente un certo tag in tutti i post, come farei?

  29. Ciao, questo è fantastico! Ora posso semplicemente sbarazzarmi del mio plugin per post correlati, quindi grazie MILLE per questo!

    Una domanda che ho è, come posso visualizzare il post correlato su 2 colonne?

    Ancora una volta, questo è stato di GRANDE aiuto per me!

  30. Ciao!! Grazie per le tue utili informazioni per coloro che, come me, non hanno idea di programmazione, ma vogliono comunque avere un blog!! Ho appena incorporato il tuo codice 'post correlati per tag' nel mio file post singolo. Funziona tranne che per le foto. Non si vedono affatto e i titoli dei miei post correlati sono mostrati uno sotto l'altro, come una lista. Cosa ho fatto di sbagliato?? Grazie in anticipo per la tua risposta!!

  31. Ciao,

    Questo codice è fantastico! Grazie mille. C'è un modo per far sì che il codice mostri post correlati da UN ALTRO SITO? In modo che cerchi i post da un altro sito che mostro sotto il post come post correlato sul mio sito?

    Grazie!

  32. Ciao,
    Sto usando un tema che funziona con post personalizzati. Mi chiedo se provo il tuo codice, quale parte dovrei modificare per visualizzare solo quei post personalizzati invece di quelli regolari.

    Grazie

  33. Ciao – il tuo è il primo tutorial che ho trovato che funziona, ma vorrei la lista verticale. Puoi fornire un esempio di CSS per quello?

  34. Ciao,

    Non riesco a trovare il single.php dove devo inserire questo codice.

    Il problema è che sto usando Balance Theme + Genesis. Quindi in Genesis, posso trovare Single.php, ma dice "Non modificare in nessuna circostanza", e in realtà ci ho incollato il codice, ma ha fatto sì che il mio sito smettesse completamente di aprire le pagine.
    E nel Child Balance Theme, non c'è Single.php...

    Suggerimenti?

    • Sì, non modificare il file del framework. Dovresti familiarizzare con gli hook e i filtri di Genesis. Quindi aggiungi il codice in uno degli hook del loop per la pagina singola usando il tuo file functions.php. Sfortunatamente, a causa della quantità di framework esistenti, non possiamo coprire i nostri suggerimenti per tutti i framework.

      Amministratore

  35. Ciao, c'è un modo per cambiare la dimensione della miniatura? Ottengo solo un post correlato e la sua miniatura è enorme

  36. Ciao! questo è un codice molto utile. È possibile usarlo per creare una pagina personalizzata che mostri tutti i post, come una sitemap ma con miniature? Qualcosa del genere:

    Categoria 1
    —– codice post correlati (tutti i post di quella categoria) ——

    Categoria 2
    —– codice post correlati (tutti i post di quella categoria) ——

    ecc. Sarebbe un'ottima vetrina per categorie con pochi post. Grazie per aver letto e per l'aiuto!

  37. Ciao,

    molto utile il tuo "Post Correlati per Categoria".

    A volte credo sia meglio aggiungere un codice grezzo piuttosto che usare un plugin che non è così espandibile...

    Grazie!

  38. 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 :)

  39. ciao!

    ho bisogno di aiuto...

    Come posso filtrare... la categoria, ma se ho categorie padre e figlio e mostro solo il post figlio. es:

    – prodotto (tutti i prodotti, questo è il padre) (id 104)

    – TipoDiProdotti (sottocategoria, questo è il figlio) (id 109)

    – TipoDiProdottiDue (sottocategoria, questo è il figlio) (id 110)

    nei prodotti ci sono tutti i post ma ho solo bisogno di mostrare quelli correlati dal figlio: TipoDiProdotti.

    ho provato con questo:

    $args = array(

    'category__in' => $category_ids,

    'category__not_in' => 104,

    'post__not_in' => array($post->ID),

    'orderby' => 'rand',

    'showposts' => 100,

    'ignore_sticky_posts' => 1

    );

    ma non mi mostrare niente…

    e provo con quest'altro:

    $args = array(

    'category__in' => $category_ids,

    ‘child_of’ => 104,

    'post__not_in' => array($post->ID),

    'orderby' => 'rand',

    'showposts' => 100,

    'ignore_sticky_posts' => 1

    );

    e niente

    aiuto? grazie!

Lascia un commento

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti, e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.