<p>You could try something like following reducing the tagged entries into IDs that you then filter against (see <a href="https://craftcms.stackexchange.com/questions/10456/get-entries-not-related-to-categories/10479#10479">this thread</a>):</p>

<pre><code>{% set tag = craft.tags.search('All-Stars').first() %}
{% set allEntries = craft.entries.section('news') %}
{% set taggedEntries = craft.entries.section('news').relatedTo(tag).ids %}
{% set omitIds = 'and, not ' ~ taggedEntries|join(', not ') %}
{% set untaggedEntries = craft.entries.section('news').id(omitIds) %}
</code></pre>

CC BY-SA 3.0
2017-03-14T17:09:47.963Z
exactly what I was looking for!
Tad Ward
CC BY-SA 3.0
2017-03-14T16:42:06.927Z
2017-03-14T16:42:06.927Z
2017-04-13T12:51:00.253Z
Cole Henley
<p>I am trying to output a list of entries from a channel section that DO NOT have a certain tag.</p>

<p>I am able to output the entries that have the tag assigned by setting the tag as a variable and using <code>relatedTo</code> to filter the entries out. For example:</p>

<pre><code>{% set tag = craft.tags.search('All-Stars').first() %}

{% if tag %}
{% set relatedEntries = craft.entries.section('news').relatedTo(tag) %}
{% endif %}
</code></pre>

<p>What is the best approach to output entries without the tag?
I've tried the following:</p>

<pre><code>{% set tag = craft.tags.search('All-Stars').first() %}
{% set allEntries = craft.entries.section('news') %}
{% set taggedEntries = craft.entries.section('news').relatedTo(tag) %}
{% set untaggedEntries = allEntries|without(taggedEntries) %}
{% for feedItems in untaggedEntries.limit(5).offset(1) %}
</code></pre>

<p>This however doesn't work and throws out some errors, the first being:</p>

<p><em>array to string conversion</em></p>

<p><strong>craft/app/vendor/twig/twig/lib/Twig/Template.php(525)</strong></p>

<p><code>$message = sprintf('Impossible to invoke a method ("%s") on a %s variable ("%s")', $item, gettype($object), $object);</code> </p>

<p>I tried many other ideas like <code>.relatedTo('not' ~ tag)</code> and <code>|without</code> with no avail.</p>

<p>Is it something obvious I am missing or more advance than that?</p>

<p>Thanks in advance</p>

<tags><channels><tag>
List entries without specific tag
# List entries without specific tag

(Asked by: username_0 on 2017-03-14)

I am trying to output a list of entries from a channel section that DO NOT have a certain tag.
I am able to output the entries that have the tag assigned by setting the tag as a variable and using relatedTo to filter the entries out. For example:
{% set tag = craft.tags.search('All-Stars').first() %}

{% if tag %}
{% set relatedEntries = craft.entries.section('news').relatedTo(tag) %}
{% endif %}

What is the best approach to output entries without the tag?
I've tried the following:
{% set tag = craft.tags.search('All-Stars').first() %}
{% set allEntries = craft.entries.section('news') %}
{% set taggedEntries = craft.entries.section('news').relatedTo(tag) %}
{% set untaggedEntries = allEntries|without(taggedEntries) %}
{% for feedItems in untaggedEntries.limit(5).offset(1) %}

This however doesn't work and throws out some errors, the first being:
array to string conversion
craft/app/vendor/twig/twig/lib/Twig/Template.php(525)
$message = sprintf('Impossible to invoke a method ("%s") on a %s variable ("%s")', $item, gettype($object), $object); 
I tried many other ideas like .relatedTo('not' ~ tag) and |without with no avail.
Is it something obvious I am missing or more advance than that?
Thanks in advance

**Tags:** tags, channels, tag


---

## 1 answers

### Answer by username_1 on 2017-03-14. Score: 3 | Accepted answer

You could try something like following reducing the tagged entries into IDs that you then filter against (see this thread):
{% set tag = craft.tags.search('All-Stars').first() %}
{% set allEntries = craft.entries.section('news') %}
{% set taggedEntries = craft.entries.section('news').relatedTo(tag).ids %}
{% set omitIds = 'and, not ' ~ taggedEntries|join(', not ') %}
{% set untaggedEntries = craft.entries.section('news').id(omitIds) %}

> **Comments:**
> **username_0**: exactly what I was looking for!  

---

