Cómo personalizar las entradas relacionadas de JetPack

entradas relacionadas jetpack

Vale que hay muchos plugins con los que mostrar entradas relacionadas desde hace años, incluso puedes mostrar entradas relacionadas sin plugin, pero está también claro que JetPack se está convirtiendo en un estándar y mucha gente aprovecha lo que tiene antes que buscar otras alternativas, aunque sean mejores.

El problema con el módulo de entradas relacionadas de JetPack es que, por defecto, no permite prácticamente ninguna personalización, ni de ubicación, ni de aspecto, es tal cual, te guste o no.

entradas relacionadas jetpack ajustes

Pero esto no es del todo cierto, pues hay personalizaciones que se pueden hacer al módulo de entradas relacionadas de JetPack, mediante códigos ofrecidos por los desarrolladores, que puedes incluir en un plugin específico o en el fichero functions.php del tema activo, así que vamos a verlas.

Cambiar el número de entradas relacionadas que se muestran

Por defecto, el módulo de entradas relacionadas añade 3 entradas como mucho. Puedes cambiar este número mediante el filtro jetpack_relatedposts_filter_options, se hace así:

//Cambiar número de entradas relacionadas de jetpack
function jetpackme_more_related_posts( $options ) {
    $options['size'] = 6;
    return $options;
}
add_filter( 'jetpack_relatedposts_filter_options', 'jetpackme_more_related_posts' );

En este ejemplo se mostrarán 6 entradas relacionadas.

Mover las entradas relacionadas a la parte superior del contenido

Las entradas relacionadas se colocan antes de los comentarios, y esto no es siempre la mejor opción. Si quieres puedes cambiar este comportamiento por defecto y moverlas a la parte superior por encima del contenido de la entrada con el filtro jetpack_relatedposts_filter_options, así:

//Mover entradas relacionadas a la parte superior del contenido
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' );

Insertar entradas relacionadas en el contenido

Otra opción interesante puede ser mostrar las entradas relacionadas en cualquier parte de tu contenido.

Hacerlo es tan sencillo como incluir el shortcode adecuado donde quieras que aparezca en tu entrada, sin salir del editor de WordPress, este:

Lo mejor de todo es que si insertas este shortcode ya no salen las entradas relacionadas al fondo de la entrada, por decirlo de algún modo «mata» el comportamiento por defecto.

Poner las entradas relacionadas en cualquier lugar del tema a elegir

Si quieres controlar exactamente dónde se mostrarán las entradas relacionadas, y no te vale ponerlas en la parte superior ni quieres estar poniendo shortcodes cada vez, nada mejor que hacer una modificación permanente.

Lo primero es añadir el siguiente código a tu plugin de funciones o functions.php, con el que eliminas las entradas relacionadas del sitio por defecto:

//Quitar entradas relacionadas de jetpack
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 );

Ahora puedes mostrar las entradas relacionadas de dos maneras, o usando el shortcode del truco anterior, que no es nada práctico, o añadir el siguiente código a la parte del loop de tu tema activo (habitualmente en el loop del fichero single.php) donde quieras que se muestren las entradas relacionadas de JetPack:

<?php echo do_shortcode( '' ); ?>

Cambiar el texto «Relacionado» que sale sobre las entradas relacionadas

Otro truco sencillo. En esta ocasión cambiamos el texto por defecto, «Related», por algo como «Quizás también te interese …»

//Cambiar texto entradas relacionadas jetpack
function jetpackme_related_posts_headline( $headline ) {
$headline = sprintf(
            '<h3 class="jp-relatedposts-headline"><em>%s</em></h3>',
            esc_html( 'Quizás también te interese ...' )
            );
return $headline;
}
add_filter( 'jetpack_relatedposts_filter_headline', 'jetpackme_related_posts_headline' );

Reemplazar una de las entradas relacionadas por un resultado definido por ti, una entrada concreta

Lo que hay que hacer es indicar el ID de la entrada que queramos que aparezca siempre, esté relacionada o no.

En este código de ejemplo usamos el ID de entrada 2345 que, por supuesto, deberás cambiar por la que tu quieras.

//Entrada relacionada fija
function jetpackme_append_related_post( $hits, $post_id ) {
    array_unshift( $hits, array( 'id' => 2345 ) );
    return $hits;
}
add_filter( 'jetpack_relatedposts_filter_hits', 'jetpackme_append_related_post' );

Excluir entradas concretas para que no aparezcan en las relacionadas

Una variación de lo anterior sería no incluir, sino excluir entradas concretas, para que no aparezcan nunca en las relacionadas.

De nuevo, los números del ejemplo de código son IDs de entrada que queremos excluir:

//Excluir entradas de las relacionadas por ID
function jetpackme_exclude_related_post( $exclude_post_ids, $post_id ) {
    $exclude_post_ids[] = 1144; // Excluye la entrada con ID 1144
    $exclude_post_ids[] = 6502; // Excluye también la entrada con ID 6502
    return $exclude_post_ids;
}
add_filter( 'jetpack_relatedposts_filter_exclude_post_ids', 'jetpackme_exclude_related_post' );

Excluir categorías enteras para que no aparezcan sus entradas en las relacionadas

Pasa muchas veces que tienes alguna categoría genérica que, por incluir palabras clave de todo cuño, aparecen a menudo en las entradas relacionadas, y preferirías excluirlas.

Pues nada, en el siguiente ejemplo logramos excluir la categoría con el slug «cosas-mias»:

//Excluir categoria de entradas relacionadas de jetpack
function jetpackme_filter_exclude_category( $filters ) {
    $filters[] = array( 'not' => array( 'term' => array( 'category.slug' => 'cosas-mias' ) ) );
    return $filters;
}
add_filter( 'jetpack_relatedposts_filter_filters', 'jetpackme_filter_exclude_category' );

Que no aparezcan entradas relacionadas en entradas concretas

Si sabes de entradas concretas donde no quieras que los lectores se distraigan con esas atractivas entradas relacionadas puedes hacer que no aparezcan simplemente usando el siguiente truco, donde ponemos los ID de las entradas donde no habrá lista de relacionadas:

//Sin entradas relacionadas en las siguientes entradas
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' );

Puedes, además, utilizar gran cantidad de Tags condicionales en la línea con el array is_single.

Incluir páginas en los resultados de entradas relacionadas

Si añades lo siguiente a tu plugin de funciones también se buscarán resultados relacionados entre las páginas que tengas, no solo entradas.

//Incluir páginas en relacionadas de jetpack
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 );
    }
 
    // Añade páginas
    $search_types[] = 'page'
    return $search_types;
}
add_filter( 'jetpack_relatedposts_filter_post_type', 'jetpackme_add_pages_to_related' );

Por supuesto, todo esto lo puedes hacer si tienes un WordPress completo y libre, de WordPress.org, no en servicios como WordPress.com

Bueno, ¿qué te parece?, son un montón de buenos trucos ¿no?

Pues ¡hala, te toca compartir los tuyos!. Si sabes alguno más nos lo cuentas en los comentarios.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(17 votos, promedio: 4.8)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

9 comentarios en “Cómo personalizar las entradas relacionadas de JetPack”

  1. Esto está muy bien, pero… al actualizar el plugin cuando toque, no se borrará todos los cambios?
    Yo tuve este plugin, pero lo quité. Consume demasiados recursos y al final tenía casi todo desactivado.

  2. Hola, Esta Bueno, Probarare Si Se Adapta 🙂 , disculpa tu no me podrias ayudar con un problema que tengo, En MI Pagina http://www.tutorialesbyneto.org/ , Cuando Entras A Algun Post, Siempre Aparece Un Mini Banner, arriba de cada entrada , ya prove Con ponerle #Img_in {
    display:none
    } pero nada, y pues no me animo a tocar php, porque pss, todavia me estoy adentrando en esto, Me Podrias Ayudar?

  3. Pingback: Usar siempre la misma imagen en las entradas relacionadas de JetPack

  4. Javier Gonzalez Roces

    Hola! No se si aun habrá alguien al otro lado, pero, probaré.
    He probado estos trucos, sin problema, pero quisiera usar el mismo método para mostrar, del mismo modo que las entradas relacionadas, las ultimas entradas del blog. Creo que jetpack no tiene la funcion por defecto, ¿Crees que sería complicado replicar la funcionalidad de entradas relacionadas, para que muestre solo las ultimas entradas?
    gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido