pods:查询自定义帖子,按分层分类法过滤

问题描述 投票:0回答:1

我们为一些 PODS 类型提供了按层次结构组织的类别。类似于示例“层次分类法:美食”此处

为了显示 PODS 条目,我们使用短代码 PODS 和带有 where 的过滤指令。

我们意识到我们可以根据分类法的最低级别过滤列表,例如

where="cuisine.slug='french'"

是否还有一种方法可以按分类法的下一级进行过滤,例如

where="cuisine.parent.slug='european'"

问候 弗里德伯特

到目前为止,我们使用了嵌套 SQL 查询。

where="cuisine.term_id IN (SELECT t.term_id FROM wp_terms p JOIN wp_term_taxonomy t ON p.term_id=t.parent WHERE p.slug='european')"

不幸的是,这不再受支持。一段时间以来,这导致了错误消息:

Pods 嵌入错误:WHERE 包含不允许的 SQL

wordpress custom-post-type custom-taxonomy
1个回答
0
投票

这个问题似乎无关紧要。我认为应该有现成的解决方案。现在我自己尝试了一下,找到了以下解决方案。

PODS 短代码中有一个未记录(或记录不充分)的功能:“join”属性可用于引入插入到 SQL 查询中适当位置的 SQL 片段。这取代了之前嵌套的 SQL 查询。

通过表

wp_term_taxonomy
连接到表
wp_terms
将带您到父类别。

所以,我添加了相应的 join 子句:

join="LEFT JOIN wp_term_taxonomy AS a ON cuisine.term_id=a.term_id
      LEFT JOIN wp_terms AS q ON a.parent=q.term_id"

更改了我的 where 子句:

where="cuisine.term_id and q.slug='european'"

其中片段

cuisine.term_id
确保字段
cuisine
在 SQL 查询中可用。

问候弗里德伯特

© www.soinside.com 2019 - 2024. All rights reserved.