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.

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.
Caleb
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
Muhammad Hadi Qureshi
Grazie mille per questo post utile
Phil Simon
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.
Lucas Bishop
Questo è buono, ma vorrei farlo con il titolo del post invece che con tag o categorie. Suggerimenti in merito, syed!!
Alexandros
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
Supporto WPBeginner
Prova a incollare il codice sotto endwhile; nel tuo file single.php.
Amministratore
Britt
Adoro questo pezzo di codice, lo uso regolarmente! Una domanda: c'è un modo per escludere alcuni tag nel codice?
Rakesh
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,
Dennis
Inoltre, ho un'altra domanda,
E se volessi visualizzare un certo post contenente un certo tag in tutti i post, come farei?
Dennis
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!
Christina
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!!
Supporto WPBeginner
Sembra che tu non stia usando miniature dei post o immagini in evidenza con i tuoi post in WordPress. Inoltre, potresti dover modificare un po' il CSS.
Amministratore
TheFran
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!
Staff editoriale
Non usando questo snippet. Dovresti creare qualcosa di più complesso per questo.
Amministratore
Carlos
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
Miz.Chellie
Ciao – il tuo è il primo tutorial che ho trovato che funziona, ma vorrei la lista verticale. Puoi fornire un esempio di CSS per quello?
Livius
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?
Staff editoriale
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
Mark
Usa gli hook di Genesis, quindi inserisci il codice lì.
peter
Ciao, c'è un modo per cambiare la dimensione della miniatura? Ottengo solo un post correlato e la sua miniatura è enorme
Staff editoriale
Sì. Dovresti aggiungere dimensioni aggiuntive per le immagini come questa:
https://014.leahstevensyj.workers.dev/wp-tutorials/how-to-create-additional-image-sizes-in-wordpress/
Amministratore
Dean
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!
Dean
hey, found something here.. I will try that
Nuno Marques
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!
Silverbadger
È possibile visualizzare i post in orizzontale invece che in verticale?
Thanks
Staff editoriale
Sì, puoi semplicemente modificare il CSS.
Amministratore
Paul
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
Staff editoriale
Sì, puoi usare le miniature dei post da sole. Non sono sicuro del perché vorresti la funzionalità correlata...
Amministratore
Raheek
Grazie per l'utile articolo. Ora ho aggiunto post correlati usando questo codice.
Ferdy
Cosa succede se non ci sono post correlati? Si può codificare in modo che ripieghi su quelli della categoria?
tobalseverin
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!