Entradas relacionadas avanzadas para Blogger

Plugin entradas relacionadas Blogger

Mejora la interacción con un algoritmo avanzado de entradas relacionadas para Blogger que funciona incluso en entradas sin etiquetas.

Las mejores entradas relacionadas para Blogger

Las entradas relacionadas tienen varios propósitos, como aumentar el tiempo de permanencia en el blog (lo que reduce la tasa de rebote) y ayudar a los motores de búsqueda a rastrear el contenido del blog. También pueden ayudar a los lectores a encontrar contenido relevante y aumentar la interacción con el blog.

En esta oportunidad, he desarrollado un script que permite mostrar entradas relacionadas de una manera más avanzada. Este script utiliza los feeds de Blogger y aprovecha características nativas de Blogger.

Características

Este sistema de entradas relacionadas fue pensado para aprovechar características nativas de Blogger, como por ejemplo las consultas a los feeds de Blogger y la personalización de la respuesta mediante parámetros de consulta. Esto permite que el sistema sea más eficiente, además:

  • Fácil de usar: Solo necesitas incluir el script e iniciar una instancia.
  • Personalizable: Puedes personalizar mediante plantillas HTML y opciones.
  • Ligero: Huella mínima y sin dependencias.
  • Carga diferida: Carga eficiente utilizando IntersectionObserver.
  • Aleatorio: Genera entradas en orden aleatorio utilizando un algoritmo de mezcla.
  • Integración con YouTube: Compatible con miniaturas de videos de YouTube.
  • Siempre visible: Genera contenido relacionado incluso sin etiquetas.

Instalar

Para instalar las entradas relacionadas en Blogger, edita el código HTML del tema que uses y busca la etiqueta </body>, arriba de eso, pega el siguiente código:

<script src="https://cdn.jsdelivr.net/npm/blogger-related-posts@1/dist/main.min.js"></script>

Si utilizas un entorno de desarrollo (por ejemplo Hamlet), instala el paquete de npm:

npm install blogger-related-posts

Modo de uso

Si usas CDN, crear una instancia con la variable global BloggerRelated de esta manera:

<script>//<![CDATA[
new BloggerRelated().init()
//]]></script>

En cambio, si estas usando el paquete npm, puedes importarlo e instanciar de la siguiente manera:

import BloggerRelated from 'blogger-related-posts'

new BloggerRelated().init()

Por último, necesitarás un contenedor HTML para mostrar las entradas relacionadas. Agrega la ID blog-related al contenedor principal en donde deseas mostrar las entradas relacionadas. Por ejemplo:

<div id="blog-related"></div>

Aunque los post relacionados funcionaran solo con especificar el contenedor, puedes mejorar las coincidencias agregando al menos dos elementos de la configuración, los cuales serían las etiquetas y la id del post actual:

<div id="blog-related">
  <b:attr name='data-post-id' expr:value='data:post.id'/>
  <b:attr expr:value='(data:post.labels map (l => l.name)) limit 3' name='data-tags'/>
</div>

Opciones

Puedes personalizar el comportamiento de las entradas relacionadas mediante un objeto de configuración. Las opciones disponibles son las siguientes:

Opción Tipo Descripción Predeterminado
relatedSelector String Selector para el contenedor de entradas relacionadas #blog-related
template String Plantilla para las entradas relacionadas Ver defaults.js
textOnlyTemplate String Plantilla para las entradas relacionadas sin imagen null
defaultImage String Imagen predeterminada para las entradas relacionadas ''
directory String Directorio del feed para realizar las consultas summary
imageParams String Parámetros de imagen para las entradas relacionadas s120-c
maxResults Number Número máximo de entradas relacionadas 5
observer Boolean Usar IntersectionObserver para carga diferida true
orderby String Tipo de orden del feed para organizar resultados relevance
postId Number ID de la entrada actual 0
postTitle String Titulo del post actual document.title
rootMargin String Margen raíz para el IntersectionObserver 200px
shuffleLevel Number Nivel de mezcla para las entradas relacionadas 5
summaryLength Number Longitud máxima del resumen 120
tags Array Etiquetas para las entradas relacionadas []
ytThumbnail String Tipo de miniatura de YouTube mqdefault

Puedes pasar las opciones al constructor de la siguiente manera:

new BloggerRelated({
  relatedSelector: '#blog-related',
  template: '<h2>{title}</h2>',
  maxResults: 5,
}).init()

Adicionalmente, el constructor también leerá atributos data-* del contenedor. Por ejemplo:

<div id="blog-related" data-max-results="5" data-root-margin="200px"></div>

Plantilla

La plantilla es un string que se usará para mostrar las entradas relacionadas. Puedes usar estos elementos para acceder a los datos de Blogger, los cuales son:

Elemento Descripción
{postId} ID de la entrada
{title} Título de la entrada
{published} Fecha de publicación de la entrada
{summary} Resumen de la entrada
{postUrl} URL de la entrada
{authorImage} Imagen del autor de la entrada
{authorName} Nombre del autor de la entrada
{authorUrl} URL del autor de la entrada
{featuredImage} Imagen destacada de la entrada

Cuando se usa la plantilla, el script reemplazará las etiquetas de datos con los valores correspondientes. Por ejemplo:

<a href="{postUrl}">
  <img src="{featuredImage}" alt="{title}" />
  <h2>{title}</h2>
  <p>{summary}</p>
  <p>By {authorName}</p>
  <p>Published on {published}</p>
</a>

Métodos

Los métodos están disponibles a través de la instancia de BloggerRelated y son los siguientes:

Método Descripción Retorna
init() Inicializa las entradas relacionadas Promise

El método init() devuelve una promesa, por lo tanto si deseas ejecutar código JavaScript después de que se hayan inicializado las entradas relacionadas, puedes hacerlo de esta forma:

new BloggerRelated().init().then(() => {
  // Se ejecuta después de que la paginación se haya inicializado
})

Conclusion

Las entradas relacionadas son una herramienta poderosa para aumentar la interacción y el tiempo de permanencia en el blog. Con este script, puedes agregar esta característica de manera sencilla y eficiente a Blogger. Además, al ser un script ligero y sin dependencias, no afectará el rendimiento de tu blog.

Gracias por leer y espero que encuentres útil este script. Este proyecto es de código abierto y planeo mantenerlo activo. Si tienes alguna pregunta o sugerencia, no dudes en dejar un comentario.