Spesso per comodità utilizzo per i siti WordPress il plugin Jetpack, che prevede una serie di piccoli ma utilissimi strumenti. Uno di questi è quello che permette di visualizzare sul fondo dei post gli articoli correlati.
Ma le personalizzazioni “standard” per questo strumento si limitano alla visualizzazione grafica e non questa non basta quasi mai. Per fortuna ci vengono in aiuto una serie di filtri che è possibile impostare nel file functions.php del nostro tema child (oppure utilizzando il plugin Code Snippets che io trovo comodissimo).
Ecco le funzioni che utilizzo più spesso:
-
modificare il numero di articoli da visualizzare
Quanti articoli visualizzare nella sezione articoli correlati? Questa è una modifica molto semplice, è sufficiente settare l’opzione ‘size’ sul numero desiderato (nel nostro esempio qui sotto saranno cinque articoli).
function numero_articoli_correlati( $options ) {
$options['size'] = 5;
return $options;
}
add_filter( 'jetpack_relatedposts_filter_options', 'numero_articoli_correlati' ); -
escludere un post specifico
In questo caso è sufficiente andare a vedere l’ID del post che voglio escludere (per trovarlo vado sull’elenco degli articoli, posiziono il mouse sul titolo dell’articolo che voglio escludere -senza cliccare!- e guardo in basso a sx; comparirà una riga con il link al post, in cui ci sarà qualcosa tipo …post.php?post=250&action… bene, quel numero (nell’esempio che ho fatto è 250) è l’ID del post). Supponiamo che io voglia escludere i post con ID 250 e 315.
A questo punto sono pronta per scrivere la mia funzione(I riferimenti della funzione che useremo sono nella pagina dedicata agli sviluppatori jetpack):
function jetpack_escludo_post_da_correlati( $exclude_post_ids, $post_id ) {
$exclude_post_ids[] = 250; // Escludo il post che ha ID 250
$exclude_post_ids[] = 315; // Escludo anche il post con ID 315
return $exclude_post_ids;
}
add_filter( 'jetpack_relatedposts_filter_exclude_post_ids', 'jetpack_escludo_post_da_correlati', 20, 2 );
-
escludere correlati DA un post specifico
E se al contrario io volessi che in alcuni post NON comparissero i correlati, mentre in tutti gli altri sì?
Anche in questo caso è sufficiente andare a vedere l’ID del post che voglio visualizzare senza che c siano i post correlati, con lo stesso procedimento che ho spiegato sopra. Supponiamo che io non voglia i correlati nei post 5 e 16:
function jetpack_senza_correlati( $options ) {
if ( is_single( array( 5, 16 ) ) ) {
$options['enabled'] = false;
}
return $options;
}
add_filter( 'jetpack_relatedposts_filter_options', 'jetpack_senza_correlati' );
-
escludere una categoria di post
Proseguiamo con la nostra carrellata a complessità crescente, il codice che segue serve per escludere dagli articoli correlati una predefinita categoria di post.
function jetpack_escludo_categoria ( $filters ) {
$filters[] = array( 'not' => array( 'term' => array( 'category.slug' => 'homepage' ) ) );
return $filters;
}
add_filter( 'jetpack_relatedposts_filter_filters', 'jetpack_escludo_categoria' ); -
visualizzare anche le pagine
Infine la modifica necessaria per visualizzare non solo i post (gli articoli), ma anche le pagine create.
function jetpack_aggiungo_pagine( $post_type, $post_id ) {
if ( is_array( $post_type ) ) {
$search_types = $post_type;
} else {
$search_types = array( $post_type );
}
// Add pages
$search_types[] = 'page';
return $search_types;
}
add_filter( 'jetpack_relatedposts_filter_post_type', 'jetpack_aggiungo_pagine', 10, 2 );
In realtà c’è molto di più, ma per quelli vi rimando alla pagina ufficiale!