我在公开的过滤器中使用Drupal 7 -Any-
选项时遇到了问题。我有一个包含大约 8 个分类术语的列表,我希望我的用户能够在其中的 6 个之间进行筛选。其他 2 个术语在网站上的另一个地方使用,但所有 8 个术语都是同一词汇表的一部分。
我的分类术语是(例如):
Eggs
Ham
Cheese
Bacon
Sausage
Juice
Fruit
Toast
在我公开的过滤器中,我选择了其中 6 个术语作为可用选项进行过滤。现在过滤器看起来像这样:
-Any-
Eggs
Ham
Cheese
Bacon
Sausage
Juice
问题是,当您选择-Any-
时,它包括Toast
和Fruit
术语。我希望-Any-
只是我在视图中选择的 6 个术语中的任何一个。
一种解决方法是选中Required
框以要求进行选择。这将关闭-Any-
选项,但我想保留它,以便在您进入页面时默认选择显示所有 6 个项目。
如何将-Any-
限制为仅包含我为公开的筛选器选择?
您还可以为同一分类词汇添加另一个筛选器。不要暴露它,将运算符设置为"不是",然后选择您不想搜索的术语(水果,吐司)。
这样,即使您的用户从公开的筛选器中选择"any",未公开的筛选器也会删除任何不需要的术语。
使用 hook_views_query_alter 并添加另一个 where 子句以将其限制在列表中。