Wordpress如何将帖子链接到其数据库中的类别?

bcm*_*cfc 14 mysql wordpress

目前,我正在使用此mysql查询显示站点博客页脚中最后5个帖子的列表:

SELECT post_title, guid, post_date FROM wp_posts WHERE post_type = 'post' AND post_status = 'Publish' ORDER BY post_date DESC LIMIT 5
Run Code Online (Sandbox Code Playgroud)

如何编辑此查询以将搜索限制为特定类别ID?我认为这就像在posts表中查找类别字段一样简单,但事实并非如此!

nik*_*org 26

Wordpress数据库的关系在数据库图中可用.

在您的特定情况下,它是:

wp_posts.ID
- > wp_term_relationships.object_id
- > wp_term_relationships.term_taxonomy_id
- > wp_term_taxonomy.term_taxonomy_id
- > wp_term_taxonomy.term_id
- >wp_terms.term_id

对于查询,您需要使用SQL连接:

SELECT p.ID, t.term_id
FROM wp_posts p
LEFT JOIN wp_term_relationships rel ON rel.object_id = p.ID
LEFT JOIN wp_term_taxonomy tax ON tax.term_taxonomy_id = rel.term_taxonomy_id
LEFT JOIN wp_terms t ON t.term_id = tax.term_id
Run Code Online (Sandbox Code Playgroud)

但应该注意的是wordpress数据库可能随时发生变化,你应该使用Wordpress提供的机制(如query_posts)来过滤数据库中的帖子.

  • 谢谢回复.我会安全地玩,包括功能并使用它们.对于未来的搜索者:在外部使用wp函数:包括'path-to-wp-directory/wp-blog-header.php' (4认同)