Back to home page
Il Jester
My little dream is in developing

Personalizzare i post correlati di Jetpack per WordPress

module-related-posts-visual-672x249E’ possibile personalizzare i post correlati di Jetpack, e questo al di là delle opzioni presenti nella pagina delle impostazioni, nella sezione “discussioni”, che in verità sono davvero minimali.

Prima però vorrei sottolineare che capita spesso che in alcuni articoli i post correlati non appaiono. Ciò probabilmente è dovuto alla indicizzazione dei post da parte di WordPress.com (sulla cui piattaforma si appoggia JetPack). Ecco perché è necessario reindicizzare i post del nostro blog su WordPress.com.

Per reindicizzare i post su WordPress.com, dovete entrare nella pagina delle impostazioni di JetPack, dopo di che, in fondo alla pagina, cliccare sul link “Debug”. Il link vi riporta in una pagina per testare la compatibilità di JetPack con il vostro WordPress, e lì troverete il pulsante per la reindicizzazione dei post.

Ma ecco tutti i filtri utili per personalizzare il plugin dei post correlati offerti dal team di Jetpack:

Determinare il numero di post da visualizzare

Questo filtro ci permette di determinare il numero di post da visualizzare. Per default sono tre:

function jetpackme_more_related_posts( $options ) {
    $options['size'] = 6; /* inserite qui il numero dei post da visualizzare */
    return $options;
}
add_filter( 'jetpack_relatedposts_filter_options', 'jetpackme_more_related_posts' );

Visualizzare i post correlati nel top della pagina

Questo filtro ci permette di visualizzare i post correlati sopra l’articolo e non sotto.

function jetpackme_move_related_posts_to_top( $options ) {
    $options['show_above_content'] = true;
    return $options;
}
add_filter( 'jetpack_relatedposts_filter_options', 'jetpackme_move_related_posts_to_top' );

Uso dei post correlati in uno shortcode

Usare i post correlati con uno shortcode. Se volete visualizzarli in un widget, dovete avere abilitata la possibilità di visualizzare gli shortcode nei widget di testo.

[jetpack-related-posts]

Nascondere i post correlati agganciati al content

Per “nascondere” i post correlati agganciati al contenuto del vostro post:

function jetpackme_remove_rp() {
    $jprp = Jetpack_RelatedPosts::init();
    $callback = array( $jprp, 'filter_add_target_to_dom' );
    remove_filter( 'the_content', $callback, 40 );
}
add_filter( 'wp', 'jetpackme_remove_rp', 20 );

Per visualizzare i post correlati dove volete nel vostro tema:

<?php echo do_shortcode( '[jetpack-related-posts]' ); ?>

Visualizzare nei post correlati un post specifico

Facciamo in modo che nei risultati dei post correlati appaia sempre un determinato post (es. un post sponsorizzato):

function jetpackme_append_related_post( $hits, $post_id ) {
    // $post_id is the post we are currently getting related posts for
    // Add 1036 to the front of the hits array
    array_unshift( $hits, array( 'id' => 1036 ) );
    return $hits;
}
add_filter( 'jetpack_relatedposts_filter_hits', 'jetpackme_append_related_post' );

Escludere un post dai post correlati

Questo filtro invece permette di eliminare un post dai post correlati:

function jetpackme_exclude_related_post( $exclude_post_ids, $post_id ) {
    // $post_id is the post we are currently getting related posts for
    $exclude_post_ids[] = 1037; // Exclude post_id 1037
    $exclude_post_ids[] = 1038; // Also exclude post_id 1038
    return $exclude_post_ids;
}
add_filter( 'jetpack_relatedposts_filter_exclude_post_ids', 'jetpackme_exclude_related_post' );

Escludere un’intera categoria dai post correlati

Con questo filtro è possibile escludere dai post correlati un’intera categoria (es. una categoria personale):

function jetpackme_filter_exclude_category( $filters ) {
    $filters[] = array( 'not' => array( 'term' => array( 'category.slug' => 'dogs' ) ) );
    return $filters;
}
add_filter( 'jetpack_relatedposts_filter_filters', 'jetpackme_filter_exclude_category' );

Nascondere i post correlati in un post o in alcuni post specifici

Non vogliamo che i post correlati appaiano in determinati post? Ecco questa è il filtro che fa per noi:

function jetpackme_no_related_posts( $options ) {
    if ( is_single( array( 17, 19, 1, 11 ) ) ) {
        $options['enabled'] = false;
    }
    return $options;
}
add_filter( 'jetpack_relatedposts_filter_options', 'jetpackme_no_related_posts' );

Visualizzare le pagine nei post correlati

Se desideriamo che le pagine del nostro sito o blog vengano visualizzate nei post correlati, utilizziamo questo filtro:

function jetpackme_add_pages_to_related( $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', 'jetpackme_add_pages_to_related' );

Questo è tutto, ma se conoscete altri filtri per personalizzare le funzioni di JetPack, fatemelo sapere!

E' un post utile?00