我们为一些 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
这个问题似乎无关紧要。我认为应该有现成的解决方案。现在我自己尝试了一下,找到了以下解决方案。
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 查询中可用。
问候弗里德伯特