Answers.Body: <p>No matter how many levels there are in your structure <a href="https://craftcms.com/docs/templating/craft.entries#ancestorOf" rel="nofollow noreferrer">ancestorOf</a> will fetch level one entry. <a href="https://craftcms.com/docs/templating/entrymodel#parent" rel="nofollow noreferrer">entry.parent</a> could be used but covers only one level up.</p>
  
  <pre><code>{% set excludeEntry = entry %}
  {% if entry.level &gt; 1 %}
      {% set excludeEntry = craft.entries.ancestorOf(entry).level(1).first() %}
  {% endif %}
  
  {% for entry in craft.entries.section('Thunder').level(1).id('not '~excludeEntry.id).limit(3).order('RAND()') %}
  ...
  {% endfor %}
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-11-15T20:55:38.197Z
Answers.Text: Brilliant Krystof, where can I find the excludeEntry tag? Is this Craft or Twig language?
Answers.UserDisplayName: Nutmeg
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-11-16T10:14:36.413Z
Answers.Text: `excludeEntry` is just a twig variable (http://twig.sensiolabs.org/doc/tags/set.html). I assign `entry` variable (provided by Craft) and overwrite it when entry level is greater then 1. This way we avoid redundant query to DB when entry level is equal to 1.
Answers.UserDisplayName: Krzysztof Boduch
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-11-15T09:22:43.827Z
Answers.LastActivityDate: 2016-11-15T09:22:43.827Z
Answers.UserDisplayName: Krzysztof Boduch
Body: <p>I am trying to exclude the current entry in a "Recommended Reading" section which works at level 1 with the ID tag, but I also need it to do the same at level 2 (children). </p>
  
  <pre><code> `{% for entry in craft.entries.section('Thunder').level(1).id('not '~entry.id).limit(3).order('RAND()') %}`
  </code></pre>
  
  <p>The level 1 entry is the Article and the level 2's are the Chapters. The recommended reading section displays other Articles and should therefor exclude the level(1) article also when viewing the Chapters. </p>
  
  <p>Should I use <code>craft.request.getSegment(2)</code> to exclude the current entry, but how do you write that conditional statement?</p>
  
  <p>Url structures are:</p>
  
  <pre><code>/site/article
  /site/article/chapter
  </code></pre>
  
  <p>Section: <strong>Structure</strong> </p>
  
Tags: <structure><conditional><segments>
Title: Exclude entry based on segment
ThreadText: # Exclude entry based on segment
  
  (Asked by: username_0 on 2016-11-15)
  
  I am trying to exclude the current entry in a "Recommended Reading" section which works at level 1 with the ID tag, but I also need it to do the same at level 2 (children).
  
  ```
   `{% for entry in craft.entries.section('Thunder').level(1).id('not '~entry.id).limit(3).order('RAND()') %}`
  
  ```
  
  The level 1 entry is the Article and the level 2's are the Chapters. The recommended reading section displays other Articles and should therefor exclude the level(1) article also when viewing the Chapters.
  
  Should I use `craft.request.getSegment(2)` to exclude the current entry, but how do you write that conditional statement?
  
  Url structures are:
  
  ```
  /site/article
  /site/article/chapter
  
  ```
  
  Section: **Structure**
  
  **Tags:** structure, conditional, segments
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2016-11-15. Score: 0 | Accepted answer
  
  No matter how many levels there are in your structure [ancestorOf](https://craftcms.com/docs/templating/craft.entries#ancestorOf) will fetch level one entry. [entry.parent](https://craftcms.com/docs/templating/entrymodel#parent) could be used but covers only one level up.
  
  ```
  {% set excludeEntry = entry %}
  {% if entry.level > 1 %}
      {% set excludeEntry = craft.entries.ancestorOf(entry).level(1).first() %}
  {% endif %}
  
  {% for entry in craft.entries.section('Thunder').level(1).id('not '~excludeEntry.id).limit(3).order('RAND()') %}
  ...
  {% endfor %}
  
  ```
  
  > **Comments:**
  > **username_0**: Brilliant Krystof, where can I find the excludeEntry tag? Is this Craft or Twig language?  
  > **username_1**: `excludeEntry` is just a twig variable (http://twig.sensiolabs.org/doc/tags/set.html). I assign `entry` variable (provided by Craft) and overwrite it when entry level is greater then 1. This way we avoid redundant query to DB when entry level is equal to 1.  
  
  ---
  
  