Template Guides
Rendering Posts
There are two main methods of rendering Post objects, manual or automatic.
Getting Posts
You'll need to either fetch posts from a Feed or a Source.
{# Get the source by its handle #}
{% set source = craft.socialFeeds.getSourceByHandle('mySourceHandle') %}
{% set posts = source ? source.getPosts() : [] %}
{% for post in posts %}
ID: {{ post.id }}<br>
Content: {{ post.getContent() }}
{% endfor %}
{# OR get the Posts from a Feed (multiple Sources) #}
{% set posts = craft.socialFeeds.getPosts('myFeedHandle') %}
{% for post in posts %}
ID: {{ post.id }}<br>
Content: {{ post.getContent() }}
{% endfor %}Use this approach when your site's templates should control the markup for each post.
Rendering Posts
Another approach is to let Social Feeds handle the rendering of your Posts for you. This can only be done for a Feed.
{{ craft.socialFeeds.renderPosts('myFeedHandle') }}This will render your Posts as cards, with the plugin’s styles applied.
Render Options
You can also pass in some additional options to render.
{% set options = {
layout: 'masonry',
limit: 20,
offset: 10,
} %}
{{ craft.socialFeeds.renderPosts('myFeedHandle', options) }}Here, we're setting the layout to use a masonry (opens new window) style layout and using limit and offset to paginate results.
Last updated: Sept 14, 2026, 8:34:36 PM