I post correlati sono un elenco di articoli che trattano lo stesso argomento del post che stiamo leggendo.
In questo post mostreremo un esempio di come visualizzare i post correlati per tag.
Questo il codice completo:
ID);
if ($posttags) {
$tags = array();
$blacklist = array('blacklist');
foreach ($posttags as $t) {
if(!in_array(strtolower($t->name),$blacklist)) {
$tags[] = str_replace(' ','-',$t->name);
}
}
$ts = implode(",", $tags);
$args = array(
'numberposts' => 3,
'tag'=> $ts,
'exclude' => $post->ID,
'orderby' => 'post_date',
'order' => 'desc'
);
$related = get_posts($args); ?>
Analizziamo il codice:
global $post;
$posttags = wp_get_post_tags($post->ID);
Prima di tutto rendiamo globale la variabile $post per rendere disponibili i dati del post, mentre con la funzione wp_get_post_tags() recuperiamo i tag associati al post.
$tags = array();
$blacklist = array('blacklist');
foreach ($posttags as $t) {
if(!in_array(strtolower($t->name),$blacklist)){
$tags[] = str_replace(' ','-',$t->name);
}
}
Verificato che ci sono tag associati al post, possiamo impostare un controllo per escludere dei tag specifici dal filtro per correlare i post. Per impostare i tag da escludere, aggiungere i termini desiderati nell’array $blacklist. Inoltre, nel ciclo dove si filtrano i tag da eslcudere, con la funzione str_replace() convertiamo i gli spazi bianchi dei tag contenenti più parole, in modo da avere lo slug del tag.
$ts = implode(",", $tags);
Creiamo una variabile $ts formattando i tag per la query,
$args = array(
'numberposts' => 3,
'tag'=> $ts,
'exclude' => $post->ID,
'orderby' => 'post_date',
'order' => 'desc'
);
$related = get_posts($args);
Creiamo una array per impostare i parametri della query e con la funzione get_posts() i post correlati. In questo esempio i post visualizzati sono 3, ma basta cambiare il valore di numberposts per visualizzare più o meno post correlati.
// Salviamo $post in una variabile temporanea
$post_TEMP = $post;
Verificato che ci siano post correlati, salviamo la variabile $post in una variabile temporanea, in modo da usare le funzioni native di WordPress per visualizzare le informazioni dei post correlati.
-
Articoli correlati
Questo è il codice che stampa a video l’elenco dei post correlati. In questo esempio, visualizziamo solo il titolo dei post correlati, ma basta richiamare le funzioni di WordPress per visualizzare le informazioni dei singoli post (es. the_author()).
// Reset $post
$post = $post_TEMP;
setup_postdata($post);
Infine resettiamo la variabile $post e il gioco è fatto.
Note: Puoi vedere il codice funzionante, alla fine di questo post.





