WordPress数据库的几个结构

时间:12-06-28 栏目:WordPress 作者:kyle 评论:1 点击: 7,887 次

成都SEO小五在操作WordPress的时候,有很多时候都是直接用的SQL语句来达到自己的需要。因为这个最方便了。

假如要删100个某分类下面的Tag。你不会一个个的进后台删吧。

所以对WordPress数据库结构有一定的了解是非常有大用的。

现在来说说几个主要的表。尤其是文章,Tag,分类,之间的关系很复杂。WordPress设计的很完美。调用起来就复杂。要几个地方一起调用。

好处就是减少了很多无用的查询和数据重复。

一、wp_terms表

主要存放的是Tag和分类信息。

1

term_id存放分类或者标签Tag的唯一标识ID。

name是分类或者标签名称。

slug是分类或者标签的别名。别名主要是做URL的时候用。比如test-ok做为别名,以后这个分类或者标签的URL就是OK.com/test-ok/这样。

term_group不需要了解。

二、wp_terms_relationships表

看名字就知道这是一个中间关系表。

2

object_id对应wp_posts表中的ID,即文章的ID。

term_taxonomy_id对应wp_term_taxonomy表中的term_taxonomy_id即文章分类或者标签的ID。

term_order不需要用。

三、wp_term_taxonomy表

3

看这个表前面就应该知道这3个表之间的关系了。

这个表是存放的文章分类ID或者标签ID与文章分类之羊的对应关系。数据大概如下。

4

会点英文的应该看出来了。category就是分类,post_tag就是TAG标签。

taxonomy表是对当前分类ID或者标签ID的描述。用于识别当前的项目是分类还是标签。description是描述。

parent是父分类的ID。count是当前分类或标签下的文章数量。

wp_posts保存文章信息,只有一个ID字段是和其它几个表做交互用的。

这3个表之间的关系如下。

wp_term_relationships表中的object_id对应wp_posts中的id。用SQL表述是:

wp_term_relationships.object_id=wp_posts.id

 

wp_term_relationships表中的term_taxonomy_id对应wp_term_taxonomy表中的term_taxonomy_id。用SQL表述是:

wp_term_relationships.term_taxonomy_id=wp_term_taxonomy.term_taxonomy_id

 

wp_term_taxonomy表中的term_id对应wp_terms表中的term_id,用SQL表述是:

wp_term_taxonomy.term_id=wp_terms.term.id

 

wp_term_taxonomy表中的taxonomy字段的值应为’category’表示分类

 

玩法一:比如我要查询现在的文章ID为1,它的分类是哪个。

应该使用如下SQL:

SELECT wp_posts.id, wp_terms.name
FROM `wp_posts` , `wp_terms` , `wp_term_relationships` , `wp_term_taxonomy` 
WHERE wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
AND wp_term_relationships.object_id = '1'
AND wp_posts.id = wp_term_relationships.object_id
AND wp_terms.term_id = wp_term_taxonomy.term_id
AND wp_term_taxonomy.taxonomy = 'category'

效果如下。

5

玩法二:查询所有文章及对应的分类

SELECT wp_posts.*, wp_terms.name
FROM `wp_posts` , `wp_terms` , `wp_term_relationships` , `wp_term_taxonomy` 
WHERE wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
AND wp_posts.id = wp_term_relationships.object_id
AND wp_terms.term_id = wp_term_taxonomy.term_id
AND wp_term_taxonomy.taxonomy = 'category'
AND wp_posts.post_status='publish'
AND wp_posts.post_type='post'

结果我就不贴了,执行就知道了。

这里限制了是已经发布的文章。其它单页神马的都不要。

其它的自己慢慢来发掘。

成都SEO小五嚎2句: 本文是(成都SEO小五)辛苦弄出来的,转载成都SEO小五原创的请保留链接: WordPress数据库的几个结构,3Q

WordPress数据库的几个结构:目前有1 条留言,牛逼吧!

  1. 沙发
    lion:

    是有必要了解一下

    2012-06-29 11:18 pm [回复]

来给哥评论评论


------====== 小五公告 ======------
成都SEO小五,专注成都搜索引擎优化。
小五善长站内外优化,C#、PHP开发,中英文SEO,Google中英文和百度优化技术。欢迎群内交流。伸手党请绕路,求资源的请绕开,求问题解答的请进群内交流。开放了一个QQ交流群:160750032。加入验证时请标注任何SEO相交字眼。友情链接直接Q我,收录正常,内容大部份原创、SEO或者程序开发、网络营销、线上推广等相关行业即可。

常用工具

赞助广告

来看过哥的人