<p>The easiest way to accomplish this, is by adding an offset of 1.</p>

<p>Result:</p>

<pre><code>{% for entry in craft.entries.section('blogPosts').offset(1).all() %}
</code></pre>

<p>You can find it in the documentation <a href="https://docs.craftcms.com/v3/dev/element-queries/entry-queries.html#offset" rel="nofollow noreferrer">here</a>.</p>

<hr>

<p>Also, instead of getting all the entries and limiting it to 1, you can use <code>.first()</code> </p>

<pre><code>craft.entries.section('blogPosts').first()
</code></pre>

CC BY-SA 4.0
2020-03-16T13:09:47.783Z
2020-03-16T13:09:47.783Z
Joorren
<p>Best practice is to only query for the data once, then perform any necessary filtering on the result, rather than making multiple expensive calls to <code>craft.entries...</code></p>

<p>So in your case you could take the first entry using <code>[0]</code>, and then use Craft's <code>without</code> filter to filter out the first entry from the list:</p>

<pre><code>{% set posts = craft.entries.section('blogPosts').all() %}
{% set firstPost = posts[0] %}
{% set otherPosts = posts|without(firstPost) %}
</code></pre>

CC BY-SA 4.0
2020-03-16T13:16:59.167Z
2020-03-16T13:16:59.167Z
James Smith
<p>Hey everyone I am trying to output entries on the homepage. My goal is that the most recent entry is styled differently.
I achieved this by calling the loop too times:
    <code>{% for entry in craft.entries.section('blogPosts').limit(1) %}</code>
than
   <code>{% for entry in craft.entries.section('blogPosts').all() %}</code>
and it works perfectly.
My only issue is that I want to exclude the most recent post from the second loop, so it only appear in the first loop.</p>

<p>Is there a way in craft for exactly the most recent entry or I should do this with ID? </p>

<p>Thank you for your help!</p>

<entry><exclude>
Exclude most recent entry type from a loop
# Exclude most recent entry type from a loop

(Asked by: username_0 on 2020-03-16)

Hey everyone I am trying to output entries on the homepage. My goal is that the most recent entry is styled differently.
I achieved this by calling the loop too times:
`{% for entry in craft.entries.section('blogPosts').limit(1) %}`
than
`{% for entry in craft.entries.section('blogPosts').all() %}`
and it works perfectly.
My only issue is that I want to exclude the most recent post from the second loop, so it only appear in the first loop.

Is there a way in craft for exactly the most recent entry or I should do this with ID?

Thank you for your help!

**Tags:** entry, exclude

---

## 2 answers

### Answer by username_2 on 2020-03-16. Score: 4 | Accepted answer

Best practice is to only query for the data once, then perform any necessary filtering on the result, rather than making multiple expensive calls to craft.entries...
So in your case you could take the first entry using [0], and then use Craft's without filter to filter out the first entry from the list:
{% set posts = craft.entries.section('blogPosts').all() %}
{% set firstPost = posts[0] %}
{% set otherPosts = posts|without(firstPost) %}


---

### Answer by username_1 on 2020-03-16. Score: 2

The easiest way to accomplish this, is by adding an offset of 1.
Result:
{% for entry in craft.entries.section('blogPosts').offset(1).all() %}

You can find it in the documentation here.

Also, instead of getting all the entries and limiting it to 1, you can use .first() 
craft.entries.section('blogPosts').first()


---

