Última modificación: 22 de agosto de 2025
La etiqueta HubL related_blog_posts se puede usar para crear publicaciones de blog dinámicas y relacionadas basadas en una variedad de parámetros. Permite generar listados de publicaciones en todos los blogs, con la capacidad de filtrar por etiquetas, autores, rutas de publicación y fechas de publicación. Los desarrolladores también pueden especificar la salida HTML del módulo utilizando una macro. Esta etiqueta de HubL se puede usar tanto en publicaciones de blog como en páginas. Este tutorial recorrerá los parámetros y las opciones de uso para la etiqueta HubL de las publicaciones relacionadas con el blog.
Ten en cuenta que la etiqueta HubL related_blog_posts no genera un módulo editable a nivel de entrada/página, sino que está configurado en su totalidad con HubL.

Parámetros

La lista de publicaciones se genera a partir de una puntuación de relevancia basada en una comparación de los valores de los parámetros establecidos con las publicaciones que coinciden con estos parámetros o relacionadas con la publicación en la que aparece la etiqueta HubL. Ninguno de los parámetros son requeridos, sin embargo, especificar parámetros te permitirá controlar aún más qué publicaciones se devuelven. Para los parámetros separados por comas, cuantos más valores establezcas, más diverso será el listado devuelto. El parámetro post_formatter te permite especificar una macro para generar la salida HTML del módulo. Para obtener una lista completa de parámetros y un ejemplo de salida HTML predeterminada, consulta la especificación related_blog_posts.
ParameterTypeDescriptionDefault
limitnumberEl número máximo de publicaciones de blog en la lista.3
blog_ids’default’ or blog idLos ID de un blog del cual incluir publicaciones.none
tagsStringLa(s) etiqueta(s) que debe(n) utilizarse para determinar si un post es relevante (separadas por comas). Si un post de blog tiene una de estas etiquetas o una similar, la relevancia del post aumenta, mejorando su clasificación en el listado.none
blog_authorsStringLos nombres de los autores de los que se incluirán las publicaciones (separados por comas)none
blog_post_idsStringEl(los) identificador(es) de un post de blog que se utilizará(n) cuando se busquen publicaciones de blog relevantes para la lista (separados por comas). Este parámetro solo debe usarse cuando el widget aparece en páginas, ya que en las publicaciones del blog, por opción predeterminada, será el post en la que aparece el widget.none
post_formatterStringEl nombre de una macro personalizada para renderizar las publicaciones de blog devueltos. A la macro se le pasan tres parámetros que son el objeto de post de blog a formatear, el recuento en la iteración de publicaciones de blog, y el recuento total de posts de blog en los resultados. Si no se especifica o se establece como “default”, se utilizará el formateador incorporado para dar formato a cada post.

Nota: se recomienda usar el parámetro de devolución de llamada a continuación en lugar del parámetro ‘post_formatter’, ya que el HTML de la etiqueta se renderizará más rápidamente, disminuyendo los tiempos de carga de la página.
none
callbackStringEl nombre de una función javascript para renderizar los posts de blog devueltos. A la función se le pasa una matriz de objetos de posts de blog para formatear. Si no se especifican los parámetros callback o post_formatter, la etiqueta generará HTML en un formato predeterminado.none
path_prefixesStringRutas de URL o subdirectorios desde los que incluir los posts (separadas por comas). Si un post de blog tiene un prefijo similar en tu ruta, la relevancia del post aumenta, mejorando su clasificación en el listado.none
start_datedate/timePermite filtrar las entradas publicadas después de una fecha/hora.none
end_dateDate/TimePermite filtrar las entradas publicadas antes de una fecha/hora.False
blog_post_overrideStringEl(los) ID de los posts de un blog que deben aparecer siempre en el listado devuelto, a pesar de todos los demás valores de parámetros y filtros (separados por comas).none
Recomendamos encarecidamente usar el parámetro callback en lugar del parámetro post_formatter para garantizar tiempos de carga de página más rápidos.
Ten en cuenta que si la etiqueta HubL related_blog_posts se está utilizando en una publicación, no se debe especificar el parámetro blog_post_ids, ya que en las publicaciones del blog, por defecto será la publicación en la que aparece el widget.
A continuación, encontrarás algunos ejemplos de formas de usar esta etiqueta para mejorar tu sitio web.

Mostrar publicaciones de un autor específico en varios blogs

En este ejemplo, generamos una lista de publicaciones escritas por uno de los tres blog_authors especificados en dos blogs diferentes.
{% related_blog_posts blog_ids="3241539189,3261083894", limit=6, blog_authors="John Smith,Joe Smith,Frank Smith" %}

Mostrar publicaciones con la etiqueta “habilitación de ventas”, restringida a un marco de tiempo de fecha de publicación específico

En este ejemplo, generamos una lista de 10 publicaciones relacionadas con una publicación de blog específica, con la etiqueta “habilitación de ventas” y restringida a un marco de tiempo de fecha de publicación específico. Este ejemplo especifica el parámetro blog_post_ids, por lo que se usaría en una página.
{% related_blog_posts blog_post_ids="3267910554", limit=10, tags="sales enablement", start_date="2018-02-05", end_date="2018-06-10" %}

Mostrar entradas usando una devolución de llamada JS para controlar la salida HTML

En este ejemplo, generamos una lista de 5 publicaciones utilizando el parámetro callback para controlar la salida HTML de la publicación. (En lugar del parámetro post_formatter usando una macro.)
{% related_blog_posts limit=5, callback="blog_post_formatter" %}

<script>
  var blog_post_formatter = function(blogposts) {

    var formatted = "<div>";
    for (var i = 0; i < blogposts.length; i++) {
      var blogpost = blogposts[i];
      formatted += '<div class="related-blog-item">';
      formatted += `<span>Related Post ${i + 1}/${blogposts.length}</span><br>`;
      formatted += `<a class="related-blog-title" href="https://developers.hubspot.es/docs${blogpost.url}"><span>${blogpost.name}</span></a>`;
      formatted += `<div class="hs-related-blog-byline">by <span class="related-blog-author">${blogpost.blogAuthor.fullName}</span><span class="related-blog-posted-at"> posted on </span><span class="related-blog-date">${new Date(blogpost.publishDate).toLocaleDateString()}</span></div>`;
      formatted += `<p class="related-blog-post-summary">${blogpost.postSummary}<a href="https://developers.hubspot.es/docs${blogpost.url}">Read more</a></p>`;
      formatted += '<div class="related-blog-tags">';
      if (blogpost.tagList.length > 0) {
        formatted += `Tags: ${blogpost.tagList.map(tag => tag.label).join(", ")}`;
      }
      formatted += '</div>';

      if (blogpost.featuredImage) {
        formatted += `<img src="${blogpost.featuredImage}" alt="${blogpost.featuredImageAltText}">`;
      }
      formatted += '</div>';
    }
    formatted += '</div>';
    return formatted;
  }
</script>