twig/wordpress 检查值是否在数组中

问题描述

我正在测试我的树枝模板中的数组中是否存在一个

<input type="hidden" name="s" value="{{ search_value }}">
  <label>
    <input type="checkBox"  
           name="cat[]" 
           value="3" 
           onchange="this.form.submit()"
           {% if 3 in cat  ? ' checked' : '' %} >
    <span>cbd</span>
  </label>
  {{ cat }}

我的 {{ cat }}页面上转储数组,我确定我的问题是一个愚蠢的语法错误。我得到的错误

致命错误:未捕获的异常:模板意外结束。 在……

如果我以这种方式包装,我会得到一个不同的错误

 {% (if 3 in cat)  ? ' checked' : '' %} >
Fatal error: Uncaught Exception: A block must start with a tag name.

解决方法

使用正确的 if

{% if 3 in cat %}checked{% endif %}

ternary(搜索“三元运算符”):

{{ 3 in cat ? ' checked' : '' }}

或缩短的三元:

{{ 3 in cat ? ' checked' }}