感谢您抽出宝贵的时间来看待这个问题,希望能帮到你!
我在寻找要运行的检索与其他所有分类WordPress的查询。
例如; 说我有一个产品类别/分类和在我的WordPress网站的子产品类别/分类。 当我登陆一个产品类别/分类页面上,我希望看到所有相关的子类别/分类的列表。
我希望这是有道理的后花了很多时间谷歌搜索,所有我能看到的是,询问如何获得相关的分类的所有帖子的问题 - 不是倒过来!
提前谢谢了!
帕特里克
感谢您抽出宝贵的时间来看待这个问题,希望能帮到你!
我在寻找要运行的检索与其他所有分类WordPress的查询。
例如; 说我有一个产品类别/分类和在我的WordPress网站的子产品类别/分类。 当我登陆一个产品类别/分类页面上,我希望看到所有相关的子类别/分类的列表。
我希望这是有道理的后花了很多时间谷歌搜索,所有我能看到的是,询问如何获得相关的分类的所有帖子的问题 - 不是倒过来!
提前谢谢了!
帕特里克
如果我理解的问题,你想获得适用于特定页面上列出的产品,如A类或分类页面的分类和术语。
假设你有产品ID $ PRODUCT_ID的阵列,例如当前显示产品的ID。 你应该能够得到适用于这些产品如下分类和术语:
global $wpdb;
$ids = implode(',', $product_id);
$query = "SELECT x.taxonomy, t.name FROM wp_term_taxonomy AS x
JOIN wp_term AS t on t.term_id = x.term_id
JOIN wp_terms_relationships AS r on r.term_taxonomy_id = x.term_taxonomy_id
WHERE r.object_id IN ($ids)
GROUP BY x.taxonomy, t.name";
$taxonomies = $wpdb->get_results( $query );
在上面:
SELECT x.taxonomy, t.name FROM wp_term_taxonomy AS x
是分类(名称)和其条款的term_ids的基表。
JOIN wp_terms AS t on t.term_id = x.term_id
从任期名wp_term_taxonomy匹配每个term_ids的。
JOIN wp_term_relationships AS r on r.term_taxonomy_id = x.term_taxonomy_id
再匹配以在wp_term_relationships项,显示哪些产品(自定义后的ID)使用这些术语。
WHERE r.object_id IN ($ids)
限制列表只针对相关的产品在你的列表中的那些方面。
因为,在这个例子中,我们要求x.taxonomy和t.name,
GROUP BY x.taxonomy, t.name
可以确保你没有重复。 如果你需要通过改变选择您可以得到更多的领域。
所以,一旦你跑get_results(),你应该有对象的数组,每一个分类名称和长期的名字。 总体方案是:
+-----------+-------+
| taxonomy1 | term1 |
+-----------+-------+
| taxonomy1 | term2 |
+-----------+-------+
| taxonomy1 | term1 |
+-----------+-------+
| taxonomy2 | term1 |
+-----------+-------+
| taxonomy3 | term1 |
+-----------+-------+
...
您现在可以使用它来创建一个方法,供游人选择进一步的子集,例如,通过为每个分类项的下拉菜单。