Creating a relevant Blog list by Tags

SOLVE
Highlighted
Regular Contributor

Hi 

 

When someone clicks on an indivual blog page to read, at the bottom is a list where I would like 3 related posts to appear based on the tag or tags of the blog page im currently reading. 

 

Ive found a few guides, but they all rely on setting the name of the tag(s) beforehand.

 

I wont know this so I'll need to somehow check the for tags each time on which ever blog story i click, then spit out 3 relevent blogs matching the tag. And I only have the one template page for this so its not as if i have a different page for each of the tags that we have.

 

Any information much appreciated

 

Thanks

 

Reply
0 Upvotes
1 Accepted solution

Accepted Solutions
Highlighted
Solution
Regular Contributor

That's awesome works exactly how I wanted it to.

Thanks jzilch 🙂

View solution in original post

Reply
0 Upvotes
2 Replies 2
Highlighted
HubSpot Moderator

Hi, 

 

Normally we use this sort of HubL below. 

{% if content.topic_list %}
  <h3>Related posts</h3>
  {% set max_posts = 4 %}<!-- Set the max number of related posts to be output to the page here -->
  {% set post_list = [] %}
  {% for topic in content.topic_list %}
    {% set post_list = post_list + blog_recent_topic_posts('default', topic.slug, max_posts + 1 ) %}
    {% if loop.last %}
      {% set post_list = post_list|sort(true, false, 'publish_date')|unique('name') %}
      {% set i = 0 %}
      {% for post in post_list %}
        {% if content.absolute_url != post.absolute_url and i < max_posts %}
          <div class="related-post-item">
            <div class="related-image"><img src="{{ post.featured_image }}" alt="{{ post.name }}"></div>
            <div class="related-title"><a href="{{post.absolute_url}}">{{ post.name}}</a></div>
          </div>
          {% set i = i + 1 %}
        {% endif %}
      {% endfor %}
    {% endif %}
  {% endfor %}
{% endif %}

This should keep you from having to manually set which of the blog tags you want to have rendered at the bottom of the posts. 

 

Let me know if this helps

 

 

 

 

 

 

 

 

 

Highlighted
Solution
Regular Contributor

That's awesome works exactly how I wanted it to.

Thanks jzilch 🙂

View solution in original post

Reply
0 Upvotes