开发者

How does Wordpress link posts to categories in its database?

At present I am displaying a list of the last 5 posts in a site's blog in its footer using this mysql query:

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

How can I edit this query to restrict the search to a par开发者_如何学Cticular category id? I thought it would be as simple as looking for a category field in the posts table but it isn't!


The relations of the Wordpress database is available in the database diagram.

In your particular case it is:

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

For querying you need to use an SQL join:

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

But it should be noted that the wordpress database might change at any time, and you should use the Wordpress provided mechanisms (such as query_posts) to filter posts from the database.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜