使用 Wp-Posts 和 Wp-Terms 查询 Wordpress 帖子

Posted

技术标签:

【中文标题】使用 Wp-Posts 和 Wp-Terms 查询 Wordpress 帖子【英文标题】:Query Wordpress Posts Using Wp-Posts and Wp-Terms 【发布时间】:2020-08-14 09:11:28 【问题描述】:

我正在尝试从我的 Wordpress 网站查询所有具有 wp_terms.slug = 'portfolio-photos' 的帖子。我已经使用 wp_terms、wp_term_taxonomy、wp_term_relationships 和 wp_posts 连接了这些表。我不确定我的 SQL 代码有什么问题。有人可以建议我的代码/思路有什么问题吗?

我收到 0 行,但是应该有 12 行,因为这就是我在 WP 中使用“portfolio-photos”slug 拥有的行数。列标题是 ID、term_id 和 slug。

SELECT wp_posts.ID, wp_terms.term_id, wp_terms.slug
FROM wp_posts
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
LEFT JOIN wp_terms ON (wp_term_taxonomy.term_taxonomy_id = wp_terms.term_id)
WHERE wp_terms.slug = 'portfolio-photos'

【问题讨论】:

您是否尝试使用 php 获取结果?还是只是 mysql 就在php admin中使用SQL php 管理员还是 php 我的管理员? 在我的 php 管理员中 您的陈述仍然含糊不清,能否告诉我您是否尝试使用“php my admin”来完成此任务,或者您已经使用 php 开发了一个管理面板并且您想显示它在那里。谢谢 【参考方案1】:

在仔细查看了 WP DB 中的表之间的关系后,我意识到我的代码是正确的。这个article 真的很有帮助。我试图使用与父类别对应的 slug 来提取结果。

因此,我上面的原始代码仅适用于子类别。下面的代码使用WHERE wp_term_taxonomy.parent = '11'提取正确数量的结果

SELECT wp_posts.ID, wp_terms.term_id, wp_term_taxonomy.parent, wp_terms.slug
FROM wp_posts
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
LEFT JOIN wp_terms ON (wp_term_taxonomy.term_taxonomy_id = wp_terms.term_id)
WHERE wp_term_taxonomy.parent = '11'

【讨论】:

【参考方案2】:

wp_terms 不在您的 FROM 子句中,您必须关联它才能在 WHERE 子句中使用它。

编辑:在我原来的回答之后,原来的帖子被改变了。

【讨论】:

您好 Khoa,我更新了我的问题,以使用 wp_term_relationships 和 wp_term_taxonomy 来反映与 wp_terms 的连接,但现在我收到 0 个结果 我注意到您刚刚更新了您的问题,现在看来您的 JOINS 可能是导致 0 结果的原因。在不知道表结构的情况下,很难分辨。 如果你想仔细阅读,这里有一本关于 JOINS 的好书,techonthenet.com/mysql/joins.php

以上是关于使用 Wp-Posts 和 Wp-Terms 查询 Wordpress 帖子的主要内容,如果未能解决你的问题,请参考以下文章

mysql 来自同一列的多个连接具有不同的键

Access(查询的使用)和CorelDRAW(绘制图形)课程总结

MongoDB安装和使用,MongoDB Like查询,Or查询,分页查询

在同一查询中使用 OR 和 AND 查询问题

mybatismybatis 查询mysql 长编码的查询使用 正向查询和反向查询

使用连接语句和子查询准备 CakePHP 查询