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.

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:
- Metodo 1: Come mostrare post correlati in WordPress tramite tag
- Metodo 2: Come mostrare post correlati in WordPress tramite categoria
- Guide esperte sui post correlati in WordPress
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.

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();.

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.

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.

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.
Guide esperte sui post correlati in WordPress
Vuoi saperne di più sulla visualizzazione di post correlati in WordPress? Dai un'occhiata a questi utili tutorial sui post correlati:
- Come visualizzare post correlati in WordPress (Passo dopo passo)
- Come visualizzare post correlati dello stesso autore in WordPress
- Come visualizzare gli articoli recenti in WordPress
- Come visualizzare post recenti di una categoria specifica in WordPress
- Come aggiungere post correlati inline nei post del blog di WordPress
- Come visualizzare post casuali in WordPress
- Come mostrare pagine correlate in WordPress
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.


Jiří Vaněk
I post correlati sono un modo fantastico per attirare gli utenti verso altri contenuti sul tuo sito web. Dopo aver letto diversi tuoi articoli su questo argomento, ho finalmente capito il potere di questa funzionalità e l'ho implementata sulla mia pagina 404. Ora, invece di mostrare contenuti che non esistono più, offre alternative e articoli simili ai miei utenti. Questo ha notevolmente ridotto il tasso di rimbalzo del mio sito web. Grazie non solo per questo articolo, ma anche per gli altri articoli che hai scritto su questo argomento. Mi hanno aiutato a migliorare la mia pagina 404.
Supporto WPBeginner
Glad to hear our content was helpful
Amministratore
kabir bairwa
Stavo cercando di correggere post relativi a WordPress ma non ci riuscivo quando ho visto questo codice e l'ho usato nel mio file WordPress, quindi ora i miei post relativi a WordPress vengono visualizzati correttamente
Supporto WPBeginner
Felice di sapere che la nostra guida ti è potuta essere d'aiuto!
Amministratore
Jennifer
C'è un modo per avere post correlati basati sul titolo del post? Non ho tag e le mie categorie non funzionano davvero poiché non c'è distinzione tra loro.
Sarebbe di grande aiuto se avessi un codice per mostrare contenuti correlati basati sul titolo del post.
aman
Voglio un codice per visualizzare post e pagine casuali con miniatura
Supporto WPBeginner
Dovresti dare un'occhiata alla nostra guida qui sotto:
https://www.wpbeginner.com/wp-tutorials/how-to-display-random-posts-in-wordpress/
Amministratore
karan4official
Invece di usare <? usa <?php ovunque
Supporto WPBeginner
Thank you for your feedback, this article should currently be using the php version everywhere
Amministratore
Motahar Hossain
Grazie per il tuo bel post.
Qui "ignore_sticky_posts" dovrebbe essere usato invece di "caller_get_posts". Perché "caller_get_posts" è deprecato.
Supporto WPBeginner
Thanks for pointing that out, we’ll be sure to look into updating the article
Amministratore
Frank
Puoi indicarmi dove aggiungere quali categorie vorrei limitare i post correlati?
Supporto WPBeginner
Questo metodo limita i post alla categoria in cui si trova il post. Per limitare le categorie dovresti creare un'istruzione if per escludere determinate categorie.
Amministratore
Greg
È possibile dove ci sono più di X post correlati per categoria che sono correlati che si possano randomizzare diciamo 3 post?
Supporto WPBeginner
Sebbene sia possibile, richiederebbe l'aggiunta di molto altro a questo; potresti voler cercare un plugin per quel tipo di personalizzazione.
Amministratore
Akiode obasanjo
Nessun CSS aggiunto
luigi
Ciao, è possibile limitarli per data? Mostrare solo quelli dell'ultimo anno?
Luis
Ho trovato un modo per creare miniature più piccole, ma le mostra in una colonna e non in orizzontale. Come si può modificare?
Luis
Lo script funziona bene. L'unico problema che ho è che le miniature sono molto grandi. Ci sarebbe un modo per renderle più piccole?
Supporto WPBeginner
Ciao Luis,
Utilizza la dimensione predefinita post-thumbnail. Puoi creare una nuova dimensione per le miniature e quindi utilizzarla nel codice in questo modo:
1-click Use in WordPress
Amministratore
Ana
come fare per creare uno shortcode per questo codice, ho creato la funzione ma non so come restituire la stampa alla pagina.
Musarrof
Perché sto affrontando questo problema. Errore di sintassi, fine del file inattesa
Per favore, aiutami.
Mike
Ciao,
Sono un principiante di WordPress.
Vorrei mostrare Post Correlati.
Nel menu principale ho la Categoria A, e nella Categoria A – Sottocategorie A, B e C. I post sono nella Categoria A, ma possono anche essere presenti in tutte e 3 le Sottocategorie.
Quando scelgo uno dei Post Correlati, qualcosa va storto e i post della Sottocategoria inizialmente scelta non vengono più visualizzati correttamente.
Anthony Reese
Grazie per il tutorial. È stato incredibilmente utile e ha funzionato alla perfezione!
pawan singh
Ciao Admin, articolo molto informativo. Mi piace il tuo sito per la sua semplicità e immediatezza. Tutti gli articoli vanno dritti al punto, ma quando si tratta di condividere la conoscenza del codice diventi troppo tecnico. Ignora il fatto che molti visitatori non sono esperti di codifica. Non sarebbe molto meglio se aggiungessi solo 2 o 3 righe in più alla tua spiegazione per renderla completa e facilmente comprensibile a tutti. Comunque, ottimo articolo, ma voglio sapere quale codice o plugin sta usando Wpbeginner?
Ahmad
davvero utile, grazie!
Tracy
Il vero problema dei tuoi articoli è che non dici mai COME fare qualcosa. Va bene dirmi di inserire il codice nel mio single.php, ma da principiante non so cosa sia né dove trovarlo. Potresti voler considerare di inserire questo tipo di informazioni critiche nei tuoi articoli invece di dare per scontato che sappiamo cosa significhi, o che abbiamo letto tutti i tuoi articoli per scoprirlo.
Victor Siyaya
Sono d'accordo. Non ho idea di dove incollare questo codice.
Rose
Grazie per il fantastico post, molto utile. Mi sono imbattuto in un errore nel codice, quindi volevo condividerlo nella speranza che possa essere utile ad altri in futuro. L'errore era:
WP_Query è stato chiamato con un argomento che è deprecato dalla versione 3.1.0! “caller_get_posts” è deprecato. Usa invece “ignore_sticky_posts”.
Quindi l'ho semplicemente sostituito e ha funzionato bene. Sto anche usando i namespace, quindi ho dovuto cambiare WP_Query in \WP_Query e ho anche cambiato l'ordine di quanto segue:
global $post;
$orig_post = $post;
Grazie ancora
Rose
sanjeev Kumar
Signore
Sto usando il codice delle categorie che funziona correttamente, ma una cosa è che quando nella home page ci sono 2 o 3 post della stessa categoria, il link appare nero, ma io voglio che appaia la categoria del post successivo.
Luan
Ciao,
Grazie per il tuo post. Ho aggiunto il codice in content-single.php e ha funzionato. Tuttavia, viene visualizzato come 1 colonna e non 3 colonne come nel tuo esempio. Potresti aiutarmi in questo? Voglio che i miei post correlati vengano visualizzati in 1 riga, 3 colonne. Grazie mille.
Claudio
Ciao!
Il primo link in Fonti aggiuntive, è rotto.
Grazie per il codice.
Supporto WPBeginner
Ciao Claudio,
Grazie per avercelo segnalato. Abbiamo rimosso il link interrotto.
Amministratore
Abhijit Badgujar
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?
Gyuricza Laszlo
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
Supporto WPBeginner
Puoi provare uno dei plugin per post correlati.
Amministratore
Tuta
Ciao Syed. Come posso stilizzarlo?
Supporto WPBeginner
Ciao Tuta,
Puoi usare i selettori #relatedposts .relatedthumb e .relatedcontent nel tuo CSS per stilizzarlo.
Amministratore
Dev Rathore
Come visualizzare l'elenco di tutti i post in una pagina
Suraz
Come mostrare post correlati su due colonne come qui in WPBeginner??
Tom
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!
Gioia
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.
Zane DeVault
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!
may nghe len
Lascia che chieda il codice dei post correlati per categoria pubblicato in luoghi pubblici. Grazie
atiq
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
Mohammad Kazemi
Devi usare ‘<?php' non '<?'
atiq
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
Marcel Tripoux
Ciao! Ottimo post!
C'è un modo per combinare entrambe le opzioni, in modo da chiamare i tag correlati solo nella categoria corrente?
Bambang
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
Alex
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à.
Mohammad
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
Muthu
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
Staff di WPBeginner
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(); ?>Jenny
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=””>
wiyono
Quando il post che condivido su Facebook, la miniatura viene presa dal post correlato, posso ottenere la miniatura dalla pagina principale? grazie
Lacey Tech Solutions
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.
Gretchen Louise
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.
Staff di WPBeginner
Usa il tag condizionale if (is_single()) sulla prima riga del codice.
vipul
puoi dire dove e come?
Rachael
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?
kate // sempre golosa //
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?
Keyko Sakura
Tutti i codici che trovo non funzionano mai. O non cambiano nulla sulla mia pagina o visualizzano un messaggio di errore. Non so cos'altro fare!
Mason Coulter
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!
Tom K.
Ciao, vorrei chiedere, c'è un modo per fare in modo che i post correlati siano per categoria e tag in un unico posto? Grazie.
Jonas
Le mie miniature sono troppo grandi, aiuto. Come si possono limitare le miniature dei post correlati?
Supporto WPBeginner
Probabilmente devi rigenerare le miniature.
Amministratore
Jonathan
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?
Jonathan
OH! Penso di aver capito. Ho appena aggiunto 'parent' => 'il numero ID del gatto' agli argomenti e penso che abbia funzionato.
Jonathan
wait… no, that didn’t work
Miro
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
Supporto WPBeginner
Sembra un'ottima idea per un post, la tratteremo presto in un nuovo articolo. Grazie per il feedback.
Amministratore
Miro
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.