在 Craft 3 中从模板传递到自定义模板标签时如何循环标签字段?

How do you loop over a tag field when passing from template to a custom template tag in Craft 3?

假设我有一个像这样的 Twig 模板:

{{ craft.myPlugin.bar(entry.specialTags) }}

如何在我的自定义模板标签中有效地执行以下操作?

public function bar($tags)
{
    if ($tags->contains('blah')) { // pseudo-code!
        // return something...
    }
}

您似乎可以像这样遍历标记字段的每个标记:

for ($tagField->all() as $tag) {
    if ($tag->title == "blah") {
        // return something...
    }
}

或者使用类似下面的方法转换成标签标题列表:

$tagTitles = array_map(
    function($tag) { return $tag->title; },
    $tagField->all()
);