2016-10-07 5 views
2

で特定の項目を選択するには:iFix_6.3iFix_7.0iFix_7.1iFix_8.0announcement、およびように...と私は特定のいくつかのタグで操作を実行したいです。これらの複数の値を確認するにはどうすればよいですか?どのように私はタグのリストを持っていると仮定すると液体

ありcontainsがあるが、私はそれの反対のために、複数の値を探しています...

ここで私は実際に他のすべてを表示するため、iFix_6.3タグを含むすべての記事をフィルタリングする例です。投稿。これは実際にはまだ機能しません。複数のタグを扱うためには、+さらに拡張する必要があります。

// posts with iFix_xxx tag should be filtered from the main posts view. 
{% assign postUpdates = site.posts | where_exp:"item", "item.tags != 'iFix_6.3'" %} 
{% for post in postUpdates limit:10 %} 
<div class="postItem inline"> 
    <p class="postDate">{% if post.pinned %}<span class="glyphicon glyphicon-pushpin"></span>{% endif %}{{post.date | date: '%B %d, %Y'}}</p> 
    <p class="postTitle"><a href="{{site.baseurl}}{{post.url}}">{{post.title}}</a></p> 
</div> 
{% endfor %} 
+0

if文を使用してすべての投稿とフィルタリングをループするのはどうですか? – JoostS

答えて

1

あなたはsplitを使用して除外したタグ(excluded_tags)のアレイと、カンマ区切りのタグの文字列を構築することにより、これを行うことができます。その後、各投稿について、投稿のタグを繰り返します。タグがにあるかどうかを確認するには、containsを使用してください。filtered_outには、unlessコントロールフロータグを使用して、投稿を表示しないようにします。

{% assign excluded_tags = "iFix_6.2,iFix_6.3,announcement" | split : "," %} 

{% for post in site.posts limit:10 %} 
    {% assign filtered_out = False %} 
    {% for tag in post.tags %} 
     {% if excluded_tags contains tag %} 
      {% assign filtered_out = True %} 
      {% break %} 
     {% endif %} 
    {% endfor %} 

    {% unless filtered_out %} 
     ... 
    {% endunless %} 
{% endfor %} 
+0

除外すべきブログ投稿がリストに残っているので、他の何かがここで干渉している可能性があります。何がフィルタリングされ、何がデバッグされないのか? –

+0

デバッグするために、 '{%for post.tags%} 'ループ内の' {%for tag}'に何が起こっているかを出力します。 – jrbedard

+0

n00bismは申し訳ありませんが、どうすればいいですか? –

関連する問題