2010-05-17 61 views
11

目前我正在使用这个mysql查询显示站点博客页脚中最后5篇帖子的列表:Wordpress如何将帖子链接到其数据库中的类别?

SELECT post_title, guid, post_date FROM wp_posts WHERE post_type = 'post' AND post_status = 'Publish' ORDER BY post_date DESC LIMIT 5 

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

回答

20

Wordpress数据库的关系可在database diagram中找到。

你的具体情况是:

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 

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

+4

感谢您的回复。我会安全地玩,包括功能并使用它们。对于未来的搜索者:在外部使用wp函数: 包括'path-to-wp-directory/wp-blog-header.php' – bcmcfc 2010-05-17 11:40:36

相关问题