当有多个过滤器时如何显示仅用一个术语 ID 标记的结果

How to display results tagged with just one term ID when there are multiple filters

我在 Drupal 7 中有一个博客,并使用视图来显示字段。我在边栏上显示了 2 组标签:

1) SHAPES

Triangle

Square

Rectangle

2) COLOR

Red 

Blue 

Green

我通过结构 > 分类法 > 词汇 > 添加术语创建了 2 组标签

对于视图,我创建了一个带有两个公开过滤器的视图(类似于 this tutorial 中所做的)

视图:

Path: '/blog/tag'

Filter Criteria:
    1) 'Content: Shape (exposed)'

        Exposed form in Block: 'Yes'

        Filter identifier: 'shape_id'

    2) 'Content: Color (exposed)'

        Exposed form in Block: 'Yes'

        Filter identifier: 'color_id'

Exposed form style: BEF

暴露的过滤器被设置到结构>块中的适当块区域。

如果我单击 'triangle',则应仅显示带有 'triangle' 标记的博文。然后,如果我单击 'red',则应仅显示标记为 'red' 的帖子。

当我点击条款时,似乎显示了正确的博文。 URL 附加了两个词汇表的 ID,但我似乎无法显示正确的组合。

点击'triangle'时需要URL:'/blog/tag/?shape_id=1&color_id=All'

单击 'red' 时需要 URL:'/blog/tag/?shape_id=All&color_id=1'

因此,基本上结果应该显示仅用一个术语 ID 标记的项目。

但是,它目前的工作方式是,如果我单击 'triangle',然后单击 'red','triangle' 和 'red' 都有 'selected' class(都是粗体)和 url 是:'/blog/tag/?shape_id=1&color_id=1'

我能够获得所需 URLs 的唯一方法是显示“-Any-”选项。但是,我的用例是不要在标签列表中列出“-Any-”。

如果没有在术语列表中列出“-Any-”,这是否可能?我以前从未使用过多个暴露的过滤器,所以任何指导都会很棒,因为我已经研究了将近一个星期了。我在 another post 中读到,上下文过滤器可以让我创建干净的单独路径别名 url,但我没有成功地做到这一点。

如有任何帮助,我们将不胜感激。谢谢你的时间。

我尝试使用分类术语页面方法,但无法弄清楚如何正确显示字段。显示的字段基于我的博客内容类型中的预告片。使用暴露的过滤器选项不是解决方案,因为我的用例是只显示基于一个标签的结果。什么对我有用:

1) 向现有博客视图添加新视图

2) 格式:'Unformatted list' 显示:'Fields'

3) FIELDS: [添加您需要显示的字段]

4) 过滤条件:'Content: Published (Yes)'; 'Content: Type (= Blog)'

5) 路径:'/blog/[你的词汇名称]/%'

6) 上下文过滤器:'Content: Has Taxonomy Term ID'

当过滤器值不在 URL 中时:'Display all results for the specified field'

当过滤器值在 URL 中或提供默认值时:select 'Override title' 并在输入字段中输入:'[您的词汇名称]/%1 '

select 'Specify validation criteria'

验证者drop-down、select'Taxonomy Term'

词汇:select适当的词汇名称

过滤值类型drop-down:'Term name converted to term ID'

select 'Transform dashes in URL to spaces in term name filter values'

过滤值未验证时采取的操作:select 适合您需要的操作(在我的例子中:'Display contents of "No Results found"')

如果您需要在结果页面的标题中显示术语名称,请在同一视图中 > HEADER > 添加 'Global: Unfiltered Text' > 然后在文本区域中添加类似 [=67 的内容=]

保存视图。因为我有多个过滤器,所以我克隆了上面的视图并重命名了所有内容。所以,我最终在我现有的博客视图中添加了 3 个额外的视图。

我之前为分类术语路径设置了 URL 别名,所以我删除了这些

此外,我不得不单独返回到我的分类术语并删除从模式生成的 URL 别名

为了使标签列表显示在右侧,并具有所需的 URL /blog/[您的词汇名称]/[您的术语名称] 结构,我创建了一个单独的新视图:

显示:'Taxonomy Terms' 类型为“[您的词汇名称]”

创建区块

'Unformatted list' 个 'Fields'

字段:'Taxonomy: Term Name' > 单击此按钮并取消select 'Link this field to its taxonomy term page'。然后在Link路径中展开"Rewrite Results"段和select'Output this field as a link'>:'blog/[YOUR VOCABULARY NAME]/[name]'(url结构末尾的[name]应显示为带有方括号的样子)> select 'Replace spaces with dashes' > 将大小写转换为 'lower case' > 单击应用

过滤条件:'Taxonomy vocabulary: Machine Name (= [YOUR VOCABULARY NAME])'

保存视图

然后在结构 > 方块中,将方块放置在适当的区域

希望这对某人有所帮助!