Skip to content

Podcast Feeds

The FeedBuilder plugin was not ported from Gryphon to CEO as an interactive plugin. Instead its functionality lives on in the front end system's Feeds plugin template system.

Now the custom feed system is controlled entirely by Twig templates.

Example

Create a new template in the client templates folder called plugins/feeds/fb-instant.twig.

This one is a bit more complex since we can't just use the rssItem macro. We want to use the rssFacebookContent macro, so we need to use each component macro to build the item list.

{% extends 'partials/plugins/feeds/rss-base.twig' %}
{% block channel %}
    {% import 'partials/plugins/feeds/rss-macros.twig' as macros %}
    {% import 'partials/plugins/feeds/facebook-macros.twig' as fbMacros %}

    {{ macros.channelItem({
        'title': 'State News Instant Articles',
        'link': 'http://statenews.com',
    }) }}

    {%
        set items = fetch('article')
                    .wherePublished()
                    .limit(10)
                    .find()
    %}

    {% for item in items %}
        {# FB instant can't use the default rssItem handler since it needs to tweak it a bit #}
        <item>
            {{ macros.rssTitle(item.headline) }}
            {{ macros.rssCategories(item.tags) }}
            {{ macros.rssAuthors(item.authors) }}
            {{ macros.rssPubDate(item.published_at) }}
            {{ macros.rssGuid(item.getFriendlyUrl) }}
            {{ macros.rssLink(item.getFriendlyUrl) }}
            {{ macros.rssDescription(item.content) }}
            {{ fbMacros.rssFacebookContent({
                'header': item.headline,
                'content': item.content,
                'url': item.getFriendlyUrl
            }) }}
            {{ macros.rssEnclosure(item.dominantMedia) }}
        </item>

    {% endfor %}

{% endblock %}

Now, when you hit the url site.tld/plugin/feeds/fb-instant you'll get your Instant Articles feed.