HubSpot

Mastering the HubSpot CMS: Combining and Sorting Blog Posts from Multiple Blogs

HubSpot CRM dashboard with blog content integration
HubSpot CRM dashboard with blog content integration

Unlocking the Power of HubSpot: Combining Blog Content for a Unified Experience

In today's content-driven world, delivering a seamless user experience is paramount. For HubSpot users managing multiple blogs, a common challenge arises: how to combine posts from different blogs into a single, unified listing, sorted by publish date. This article delves into how you can achieve this using HubL, HubSpot's templating language, ensuring your audience always sees the most relevant and up-to-date information.

Whether you're running an e-commerce store with ESHOPMAN or managing various content streams, mastering this technique can significantly enhance your content strategy and improve user engagement. Even if you are running a wix online shop and looking to migrate to HubSpot, understanding content aggregation is crucial.

The Challenge: Aggregating and Sorting Blog Posts in HubSpot

Imagine you have two HubSpot blogs: one for product updates and another for industry insights. You want to display all posts in a single feed, ordered chronologically, on your homepage. The initial approach might involve fetching posts from each blog using blog_recent_posts(). However, the real challenge lies in merging these results and sorting them by date to create a cohesive timeline.

A common scenario involves questions like:

  1. What's the correct HubL property to use for the publish date?
  2. What format is that date field (integer timestamp vs. string)?
  3. What's the most efficient HubL approach to merge and sort these posts?

The Solution: HubL to the Rescue for Content Aggregation

Let's explore a HubL snippet that effectively addresses this problem. This solution was inspired by a helpful community member's response to a similar question on the HubSpot Community forums.

{% set case_posts = blog_recent_posts(case_studies_blog_id, 200) %}
{% insight_posts = blog_recent_posts(insights_blog_id, 200) %}

{% set all_posts = case_posts ~ insight_posts|sort(false, false, "publish_date") %}

    {% for single_post in all_posts %}
  • {{ single_post.name }} {{ single_post.publish_date|datetimeformat('%m/%d/%Y') }}

    {{ single_post.summary }}

  • {% endfor %}

Step-by-Step Explanation

  1. Fetch Posts: The code begins by fetching posts from each blog using the blog_recent_posts() function. You'll need to replace case_studies_blog_id and insights_blog_id with the actual IDs of your blogs. The 200 indicates the maximum number of posts to retrieve from each blog.
  2. Concatenate and Sort: The ~ operator is the key to concatenating the two lists of posts into a single list called all_posts. The |sort(false, false, "publish_date") filter then sorts this combined list by the publish_date property in descending order (newest first). The first two `false` arguments in the `sort` filter specify ascending order and case-insensitive sorting, respectively – both set to `false` here.
  3. Loop and Display: The {% for %} loop iterates through the all_posts list, displaying each post's title (linked to the post), publish date (formatted using the datetimeformat filter), and summary.

Understanding the publish_date Property

The publish_date property is crucial for sorting. It typically stores the publish date as a timestamp (a number representing the number of seconds since January 1, 1970, 00:00:00 UTC). The datetimeformat filter allows you to format this timestamp into a human-readable date string.

Advanced Tips and Considerations

  • Error Handling: Always include error handling in your HubL code to gracefully handle cases where a blog ID is invalid or no posts are found.
  • Pagination: If you're dealing with a large number of posts, implement pagination to improve performance and user experience.
  • Customization: Customize the display of each post to match your website's design. You can access other post properties like featured_image, author_name, and post_body.
  • Performance: Be mindful of the number of posts you're fetching and sorting, as this can impact page load time. Consider caching the results to improve performance.

Enhancing Your E-commerce Storefront with Integrated Content

For e-commerce businesses using ESHOPMAN, integrating blog content directly into your storefront can significantly boost engagement and drive sales. By showcasing relevant articles alongside product listings, you can provide valuable information to customers, build trust, and improve SEO.

For example, if you're selling running shoes, you could feature blog posts about running tips, shoe care, and injury prevention on your product pages. This not only provides value to your customers but also helps them make informed purchasing decisions.

Conclusion: Mastering Content Aggregation in HubSpot

Combining and sorting blog posts from multiple HubSpot blogs is a powerful technique for creating a unified and engaging content experience. By leveraging HubL and understanding the blog_recent_posts() function, you can seamlessly integrate content from different sources and present it in a way that resonates with your audience. Whether you're running an e-commerce store with ESHOPMAN or managing multiple content streams, this approach can significantly enhance your content strategy and drive business growth.

Share: