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.
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.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
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.
No hombre, ten en cuenta que todos estos códigos irán en tu plugin de utilidades o en el fichero de funciones de tu tema
Muy buena la solución…. pero yo uso sahifa y mejor me quedo con lo que viene en el tema… gracias!
Buenas Fernando, hace un par de meses publiqué un post muy parecido añadiendo un código que no está en el tuyo, sirve para especificar un rango de fechas, por ejemplo que se muestren sólo las entradas publicadas hace 1 año. http://ceslava.com/blog/como-personalizar-los-posts-relacionados-de-jetpack-en-wordpress/
Un abrazo
Hola Fernando, esta tarde dejé un comentario aquí y no sé si me fui sin darle a publicar o lo has quitado 🙁
Algún método para que no agregue el nofollow a los post relacionados?
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?
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!
Muchisimas gracias, necesitaba cambiar el número de artículos relacionados y fue muy sencillo gracias a tu tutorial paso a paso, se agradece mucho