RebelMouse Talk to Us

posts

Display one or more posts inside an .xml file.

<posts name="homepage_posts" format="posts_popular" source="frontpage" limit="10" section_url="entertainment" />

Variants

<posts_without_current />

It is used the same way as <posts>, but excludes the current post (on a post page). When using <posts_without_current> you must define the limit attribute (see below) with 1 more than you actually need.


Attributes

  • name - define the name of the section. Required for displaying unique posts using the <posts_without_current> tag.
  • format - defines the mustache template that will be used to render each post, relative to engine/mustache/roar/posts/ directory.Usage: create a new .html template file inside the above directory (ex: posts_most_read.html). Use <posts format="posts_most_read"> inside an .xml file to render this type of posts.
  • template - defines the mustache template that will be used to render each post, relative to engine/mustache/ directory.
  • source - post source used to fetch data from. (default is "frontpage"). It can take one of the following values:
    • frontpage - load posts for front page or any other subpage (section);
    • search_result - load posts that are result of some search;
    • tag - load posts for specified tag;
    • popular - load most popular (most read) posts for last 3 days;
    • related - load related posts (calculated by similar tags); if there's no related posts, then populate it with posts from the same section;
    • mentioned - load mentioned posts (if current post has any internal links, i.e. links to posts on the same domain, then this posts will be "mentioned" for current post).
  • limit - maximum number of posts to show in this block.
  • css_classes - add additional css classes for the posts wrapper.
  • section_url - name of the section used as source for posts.
    • If source="popular", you can specify more than one section separated by comma.
    • On article page you can use post's section as a base for displaying posts from the same section. Usage:
    • <posts_without_current format="posts-main" section_url="{{post.section}}" limit="4" />
  • no_posts_template - set a path to a jinja template that will be shown when no posts are found.
  • source_site - site used as source for posts. Use source_site="parent_site" on community pages so you can pull popular posts or posts from other sections with section_url="section-name".
  • section_template - define the template to be used for the posts wrapper (container). Default template located at: engine/community/roar/blocks/section.
  • source_unique - true OR false Posts among any source with this attribute are unique. For example if we have posts with ids [1,2,3] for frontpage source and posts with ids [3,4,5] for 'popular' source, 'popular' source excludes post 3 from its list and it becomes [4, 5].
  • tag_name - only relevant if source="tag". Name of the tag that will be used as source for posts (default to current tag on tag page).
  • exclude_section - way to omit posts (which are in certain section) when using popular source. Usage:
  • <posts format="popular-food" source="popular" exclude_section="fruits" />
  • filters - apply filters to posts. In order to minimize data transfer, your <posts> tag will not include all the data you may expect, such as author name or the section title this post belongs to. Use these filters to get more data about your post:
    • frontpage_tag - take the first tag from public_tags of the post and assign to 'frontpage_tag' key on the same post;
    • original_user_subsite - add author data to your post;
    • section - add section info on the post. If the post has multiple sections, the first not private section in the list will be returned. Usage:
    • <posts name="splash" format="splash_news" source="frontpage" filters="section" />
    • display_disclaimer - set the display_disclaimer attribute of the post to "True";
    • pretty_date - apply this function to this post. Usage:
    • <posts name="news2" format="news" source="frontpage" limit="4">  <filters>    <pretty_date field_name="created_ts" full_format="true" enable_future="false" date_format="%a, %d %b %Y %H:%M:%S +0000" new_field_name="created_ts_formatted"/>   </filters></posts>
      Now you should be able to use {{created_ts_formatted}} in your mustache template. Attributes of pretty_date:
      1. field_name required string - name of the field on the post for processing
      2. full_format optional boolean default - false.
      3. enable_future optional boolean default - false.
      4. date_format optional default - "%d %B %Y".
      5. new_field_name optional default - field_name. Name of the field on the post model where result of filter will be written. By default it will be written in the same field_name.
    • set_image_size - set the image_url context variable for desktop and/or mobile screen. Usage:
    • <posts name="popular" format="popular" source="popular" limit="1" section_url="popular">    <filters>        <set_image_size url="image528x304,image600x" mobile_url="imageWWWxHHH,image300x"  />    </filters></posts>

      You should now be able to include {{image_url}} in your mustache template

    • partial - override any partial used in your mustache template for post rendering. Example:

    • <posts name="news" format="news" source="frontpage" limit="6">    <partial name="roar/posts/partials/author/author" replace_with="custom/author"/></posts>

Applying filters

Set them in the filters attribute (if there are more than 1 filter to define, separate them with comma, no spaces allowed). Example:

<posts name="news" format="news" source="frontpage" limit="6" filters="frontpage_tag,display_disclaimer"/>

Set them in the <filters> child tag. Example:

<posts name="news" format="news" source="frontpage" limit="6">  <filters>    <frontpage_tag/>    <display_disclaimer/>  </filters></posts>

It is also acceptable to define filters both ways into a single <posts> tag. Example:

<posts name="news" format="news" source="frontpage" limit="6" filters="frontpage_tag">  <filters>    <display_disclaimer/>  </filters></posts>
What Is RebelMouse?
Request a Proposal
Google Made Major Changes to Its Formula for Page Speed. Here’s What to Do About It in 2022.
Rebel Insights

Google Made Major Changes to Its Formula for Page Speed. Here’s What to Do About It in 2022.

Make sure your site is set up for success in 2022.

In the spring of 2020, Google let the world know that its Core Web Vitals would become the new benchmark for measuring a site's performance in its search results, known as the page experience update. Fast forward to more than a year later in August 2021 when, after much anticipation, Google's page experience update became official.

Since its rollout, developers have felt the impact of how their publishing platforms stack up against the new standard. Important decisions around the architecture of your site can now make or break your site's performance in the eyes of Google.

HTTP Archive, a tracking platform that crawls the web to identify trends and record historical patterns, has revealed how top content management systems (CMS) have weathered the page experience update through the creation of its Core Web Vitals Technology Report. RebelMouse consistently outperforms major CMS platforms on Google's most critical metrics since its rollout and into 2022:

Getting superior scores on Google's performance benchmarks isn't easy, either. The Ahrefs blog analyzed Core Web Vitals data from the Chrome User Experience Report (CrUX), which is data from actual Chrome users, to see how the web stacks up against Core Web Vitals. Their study found that only 33% of sites on the web are passing Core Web Vitals.

data from Ahrefs tracked on a line chart finds that shows only 33% of sites on the web pass Google's Core Web Vitals From Ahrefs.

Luckily, performing well on Core Web Vitals is possible with thoughtful, strategic changes to your site’s codebase. Here's what you need to know and how we can help.

Keep reading... Show less
subscription model for publishers
Content Strategy

In 2022, Publishers Take Back Control With Subscription Success

Users are ready to pay for content that delivers

The Rise of the Mature User

It's been a long and winding path, but in 2022 the subscription model continues its upward trajectory as a top revenue strategy for publishers of all sizes. The tug of war between platforms and publishers reached its peak in the last few years of the previous decade, leaving users desperate for a modern user experience that's clear of any clutter from the duopoly that is Google and Facebook. This is why intelligent paywall models are a top choice for users looking to consume content right from the source. When done correctly, the strategy can work for any type of media. The New York Times, a frequent showpiece example of the power of paywalls, is constantly reporting record-busting subscription numbers, with 7.6 million digital subscriptions in 2021.

And it all makes perfect sense. The subscription model eliminates the middleman — such as the platforms — so readers get the experience and content they want, and publishers get the cash they need.

Keep reading... Show less
Interested in a Free Website Health Check?Check Your
Website's Health
Get Your Free Analysis Now
INP and Core Web Vitals what you need to know
Rebel Insights

INP and Core Web Vitals: What You Need to Know

In this article:

What Are Core Web Vitals?

What Is INP?

Why INP Is More Challenging Than FID

How to Improve Your INP Score

INP Debugger

Front-End Solution

Get Ahead of the Rest of the Web

It’s been more than two years since Google let the world know that its Core Web Vitals metrics are the new benchmark for measuring a site's performance in its search results. Developers have since felt the impact of how their publishing platforms stack up against the new standard. Important decisions around the architecture of your site can now make or break your site's performance in the eyes of Google.

Now, the definition of what makes up Core Web Vitals could change. A new responsiveness metric called Interaction to Next Paint (INP) may replace First Input Delay (FID). During Google’s I/O conference in May 2022, it was announced that the INP metric was still in its experimental phase. You can watch the announcement here:

Keep reading... Show less
Sign Up for RebelMouse’s Free Website Health Check
Rebel Insights

Sign Up for RebelMouse’s Free Website Health Check

Most publishers are bogged down with day-to-day content strategy and creation, which usually means their technology suffers. That translates into poor search rankings, traffic dips, and loss of revenue.

Even so, the idea of replatforming to a new CMS, migrating your data, and overhauling your site’s architecture can sometimes feel more daunting than simply fixing the issues your website currently faces. But the stumbling block here is that most publishers aren’t even sure what the exact problems are with their current site.

That’s why RebelMouse offers a free website health check. This comprehensive audit will help you make a data-backed decision on what the best and most cost-effective next steps are to brighten your site’s future. Here’s what our health check includes:

Keep reading... Show less
Build on a Better PlatformReady to See More?
Request a Proposal