建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

WordPress博客MySQL数据库常见数据表字段解释——墨涩网(wordpress进阶教程(十四):给分类添加字段类文件)

GG网络技术分享 2025-03-18 16:12 0


WordPress博客MySQL数据库常见数据表字段解释——墨涩网

折腾WordPress的朋友一定接触过MySQL数据库,我们在网站需要批量处理信息或者修改部分内容的时候就要进MySQL数据库进行操作,但是没有MySQL数据库知识的朋友可能进去以后会一脸懵逼,看不懂WordPress博客MySQL数据库的表都是用来干嘛的,下面 分享一下WordPress博客MySQL数据库常见的数据表的含义,已经数据表中的字段的作用。

WordPress数据库常见数据表


wp_categories: 用于保存分类相关信息的表。

wp_commentmeta:存储评论的元数据

wp_comments:存储评论

wp_links:存储友情链接(Blogroll)

wp_linkcategories: 用于保存在WP后台中添加的链接的相关信息的表。

wp_options:存储WordPress系统选项和插件、主题配置

wp_postmeta:存储文章(包括页面、上传文件、修订)的元数据

wp_posts:存储文章(包括页面、上传文件、修订)

wp_terms:存储每个目录、标签

wp_term_relationships:存储每个文章、链接和对应分类的关系

wp_term_taxonomy:存储每个目录、标签所对应的分类

wp_usermeta:存储用户的元数据

wp_users:存储用户


WordPress数据库常见数据表字段文字释义


wp_commentmeta:存储评论的元数据,包括了4个字段,分别是:

meta_id:自增唯一ID

comment_id:对应评论ID

meta_key:键名

meta_value:键值

wp_categories: 用于保存分类相关信息的表。包括了5个字段,分别是:

cat_ID – 每个分类唯一的ID号,为一个bigint(20)值,且带有附加属性auto_increment。

cat_name – 某个分类的名称,为一个varchar(55)值。

category_nicename – 指定给分类的一个便于记住的名字,也就是所谓的slug,这是一个varchar(200)值。

category_description – 某个分类的详细说明,longtext型值。

category_parent – 分类的上级分类,为一个int(4)值,对应是的当前表中的cat_ID,即wp_categories.cat_ID。无上级分类时,这个值为0。

wp_comments: 用于保存评论信息的表。包括了15个字段,分别为:

comment_ID – 每个评论的唯一ID号,是一个bigint(20)值。带有附加属性auto_increment。

comment_post_ID – 每个评论对应的文章的ID号,int(11)值,等同于wp_posts.ID。

comment_author – 每个评论的评论者名称,tinytext值。

comment_author_email – 每个评论的评论者电邮地址,varchar(100)值。

comment_author_url – 每个评论的评论者网址,varchar(200)值。

comment_author_IP – 每个评论的评论者的IP地址,varchar(100)值。

comment_date – 每个评论发表的时间,datetime值(是加上时区偏移量后的值)。

comment_date_gmt – 每个评论发表的时间,datetime值(是标准的格林尼治时间)。

comment_content – 每个评论的具体内容,text值。

comment_karma – 不详,int(11)值,默认为0。

comment_approved – 每个评论的当前状态,为一个枚举值enum(’0′,’1′,’spam’),0为等待审核,1为允许发布,spam为垃圾评论。默认值为1。

comment_agent – 每个评论的评论者的客户端信息,varchar(255)值,主要包括其浏览器和操作系统的类型、版本等资料。

comment_type – 不详,varchar(20)值。

comment_parent – 某一评论的上级评论,int(11)值,对应wp_comment.ID,默认为0,即无上级评论。

user_id – 某一评论对应的用户ID,只有当用户注册后才会生成,int(11)值,对应wp_users.ID。未注册的用户,即外部评论者,这个ID的值为0。

wp_linkcategories: 用于保存在WP后台中添加的链接的相关信息的表。包括13个字段:

cat_id – 每个链接分类的唯一ID,bigint(20)值,为一个自增量auto_increment。

cat_name – 每个链接分类的名字,tinytext值。

auto_toggle -这个字段所包含的是一个比较特别的属性。如果为Y,则当该分类中加入了新链接时,其它的链接会变为不可见。它是一个枚举型的值enum(’Y’,’N’),默认为N。

show_images – 该字段也是枚举值enum(’Y’,’N’),默认为Y。用户指定是否允许在该链接分类显示图片链接。

show_description – 该字段指定相应的链接分类下的链接,是否再专门[换行]显示它们的说明,这是一个枚举型值enum(’Y’,’N’),默认为N,即不显示说明(但会通过title属性中显示说明)。

show_rating – 显示该分类下链接的等级。它也是一个枚举值enum(’Y’,’N’),默认为Y。此时,你可以用链接等级的方式来对该链接分类下的链接进行排序。

show_updated – 指定该链接分类有更新是,是否进行显示,枚举值enum(’Y’,’N’),默认为Y。

sort_order – 指定该链接分类中链接的排序依据,varchar(64)值。一般用链接的名字(name,即wp_links.link_name)或ID(id,即wp_links.link_id)。

sort_desc – 指定链接分类的排序方式,枚举值enum(’Y’,’N’),默认为N,即用降序。

text_before_link – 该链接分类下每个链接的前置html文本,varchar(128)值,默认是’列表开始标签’。

text_after_link – 该链接分类下每个链接的中,链接与说明文字(wp_links.link_description)之间的html文本,varchar(128)值,默认是’换行标签’。

text_after_all – 该链接分类下每个链接的后置html文本,varchar(128)值,默认是’列表结束标签’。

list_limit – 用于规定某一链接分类中显示的(可设定的?)链接的个数,int(11)值,默认为-1,即对链接分类下链接的个数无限制。

wp_links :用于保存用户输入到WordPress中的链接(通过Link Manager)的表。共14个字段:

link_id – 每个链接的唯一ID号,bigint(20)值,附加属性为auto_increment。

link_url – 每个链接的URL地址,varchar(255)值,形式为http://开头的地址。

link_name – 单个链接的名字,varchar(255)值。

link_image – 链接可以被定义为使用图片链接,这个字段用于保存该图片的地址,为varchar(255)值。

link_target – 链接打开的方式,有三种,_blank为以新窗口打开,_top为就在本窗口中打开并在最上一级,none为不选择,会在本窗口中打开。这个字段是varchar(25)值。

link_category – 某个链接对应的链接分类,为int(11)值。相当于wp_linkcategories.cat_id。

link_description – 链接的说明文字。用户可以选择显示在链接下方还是显示在title属性中。varchar(255)值。

link_visible – 该链接是否可以,枚举enum(’Y’,’N’)值,默认为Y,即可见。

link_owner – 某个链接的创建人,为一int(11)值,默认是1。(应该对应的就是wp_users.ID)

link_rating – 链接的等级,int(11)值。默认为0。

link_updated – 链接被定义、修改的时间,datetime值。

link_rel – 链接与定义者的关系,由XFN Creator设置,varchar(255)值。

link_notes – 链接的详细说明,mediumtext值。

link_rss – 该链接的RSS地址,varchar(255)值。

wp_options: 用于保存WordPress相关设置、参数的表,共11个字段。最重要是的option_value字段,里面包括了大量的重要信息。

option_id – 选项的ID,bigint(20)值,附加auto_increment属性。

blog_id – 不详。或许用在单在用户的WP版本上并不重要吧,或许是针对不同用户的Blog来设置的一个值。int(11)值,默认为0,即当前blog。

option_name – 选项名称,varchar(64)值。

option_can_override – 该选项是否可被重写、更新,枚举enum(’Y’,’N’)值,默认为Y,即可被重写、更新。

option_type – 选项的类型,作用不详,int(11)值,默认为1。

option_value – 选项的值,longtext值,这个字段的内容比较重要。WordPress初始化时就会设定好约70个默认的值,这里暂不介绍。

option_width – 选项的宽(?),作用不详。int(11)值,默认为20。

option_height – 选项的高(?),作用不详。int(11)值,默认为8。

option_description – 针对某个选项的说明,tinytext值。

option_admin_level – 设定某个选项可被操纵的用户等级(详情见我的相关文章),int(11)值,默认为1。

autoload – 选项是否每次都被自动加载,枚举enum(’yes’,’no’)值,默认为yes。

wp_terms:存储每个目录、标签,只有4个字段:

term_id:分类ID

name:分类名

slug:缩略名

term_group:未知

wp_term_relationships:存储每个文章、链接和对应分类的关系,只有3个字段:

object_id:对应文章ID/链接ID

term_taxonomy_id:对应分类方法ID

term_order:排序

wp_term_taxonomy:存储每个目录、标签所对应的分类,只有5个字段:

term_taxonomy_id:分类方法ID

term_id:taxonomy:分类方法(category/post_tag)

description:未知

parent:所属父分类方法ID

count:文章数统计

wp_post2cat: 用于保存文章(posts)与分类(categories)之间的关系的表,只有三个字段:

rel_id – 关联ID,bigint(20)值,是个有auto_increment属性的自增量。

post_id – 文章的ID,bigint(20)值,相当于wp_posts.ID。

category_id – 分类的ID,也是bigint(20)值,相当于wp_categories.ID。

文章与分类的关系的形成是这样的:rel_id是一个不断增加的自增量,它用于识别每不同的post。post_id可以重复(当它对应多个分类时),因为它可被rel_id识别,所以不会出现混乱。每个post_id可对应多个category_id时,一个rel_id + post_id组合,可以识别某一个分类,因此每个文章的分类可以是不同的。通过这张表,可以非常快速、高效地找出某篇文章(post)对应了哪些分类 (category),反之亦然。

wp_postmeta: 用于保存文章的元信息(meta)的表,四个字段:

meta_id – 元信息ID,bigint(20)值,附加属性为auto_increment。

post_id – 文章ID,bigint(20)值,相当于wp_posts.ID。

meta_key – 元信息的关键字,varchar(255)值。

meta_value – 元信息的值,text值。

这些内容主要是在文章及页面编辑页(Write Post, Write Page)的”Add a new custom field to this post(page):”下进行设定的。meta_key就对应名为”key”的下拉列表中的项,而值由用户自己填上(某些时候,wp也会自动加入,如文章中有的音频媒体)。

wp_posts: 用于保存你所有的文章(posts)的相关信息的表,非常的重要。一般来讲,它存储的数据是最多的。一共包括了21个字段。

ID – 每篇文章的唯一ID,bigint(20)值,附加属性auto_increment。

post_author – 每篇文章的作者的编号,int(4)值,应该对应的是wp_users.ID。

post_date – 每篇文章发表的时间,datetime值。它是GMT时间加上时区偏移量的结果。

post_date_gmt – 每篇文章发表时的GMT(格林威治)时间,datetime值。

post_content – 每篇文章的具体内容,longtext值。你在后台文章编辑页面中写入的所有内容都放在这里。

post_title – 文章的标题,text值。

post_category – 文章所属分类,int(4)值。

post_excerpt – 文章摘要,text值。

post_status – 文章当前的状态,枚举enum(’publish’,’draft’,’private’,’static’,’object’)值,publish为已发表,draft为草稿,private为私人内容(不会被公开) ,static(不详),object(不详)。默认为publish。

comment_status – 评论设置的状态,也是枚举enum(’open’,’closed’,’registered_only’)值,open为允许评论,closed为不允许评论,registered_only为只有注册用户方可评论。默认为open,即人人都可以评论。

ping_status – ping状态,枚举enum(’open’,’closed’)值,open指打开pingback功能,closed为关闭。默认值是open。

post_password – 文章密码,varchar(20)值。文章编辑才可为文章设定一个密码,凭这个密码才能对文章进行重新强加或修改。

post_name – 文章名,varchar(200)值。这通常是用在生成permalink时,标识某篇文章的一段文本或数字,也即post slug。

to_ping – 强制该文章去ping某个URI。text值。

pinged – 该文章被pingback的历史记录,text值,为一个个的URI。

post_modified – 文章最后修改的时间,datetime值,它是GMT时间加上时区偏移量的结果。

post_modified_gmt – 文章最后修改的GMT时间,datetime值。

post_content_filtered – 不详,text值。

post_parent – 文章的上级文章的ID,int(11)值,对应的是wp_posts.ID。默认为0,即没有上级文章。

guid – 这是每篇文章的一个地址,varchar(255)值。默认是这样的形式: http://your.blog.site/?p=1,如果你形成permalink功能,则通常会是: 你的WordPress站点地址+文章名。

menu_order – 不详,int(11)值,默认为0。

post_type – 文章类型,具体不详,varchar(100)值。默认为0。

post_mime_type – 不详。varchar(100)值。

comment_count – 评论计数,具体用途不详,bigint(20)值。

wp_usermeta : 用于保存用户元信息(meta)的表,共4个字段:

umeta_id – 元信息ID,bigint(20)值,附加属性auto_increment。

user_id – 元信息对应的用户ID,bigint(20)值,相当于wp_users.ID。

meta_key – 元信息关键字,varchar(255)值。

meta_value – 元信息的详细值,longtext值。

wp_users:用于保存WordPress使用者的相关信息的表。WP官方对2.0.2版本中该表的情况的说明有些矛盾(称有22个字段,但详细的列表中只有11个),所以这里只能列出11个字段进行说明:

ID – 用户唯一ID,bigint(20)值,带附加属性auto_increment。

user_login – 用户的注册名称,varchar(60)值。

user_pass – 用户密码,varchar(64)值,这是经过加密的结果。好象用的是不可逆的MD5算法。

user_nicename – 用户昵称,varchar(50)值。

user_email – 用户电邮地址,varchar(100)值。

user_url – 用户网址,varchar(100)值。

user_registered – 用户注册时间,datetime值。

user_level – 用于等级,int(2)值,可以是0-10之间的数字,不同等级有不同的对WP的操作权限。

user_activation_key – 用户激活码,不详。varchar(60)值。

user_status – 用户状态,int(11)值,默认为0。

display_name – 来前台显示出来的用户名字,varchar(250)值。

wordpress进阶教程(十四):给分类添加字段类文件

敬告:本类文件发表于2013年,可能已经过时,请参考或直接使用Ashuwp_framework框架。

在这篇教程作者将要结束给wordpress分类添加字段的教程,教程最后当然是送出类文件,前面也放出过两个类文件:主题后台、文章自定义字段。

但是这个类文件不一样,该类文件为wp自学笔记原创,所以有不完美的地方,比如没有提供图片上传的,不过如果读者需要,参考一下前面主题后台和文章自定义字段的两个类文件,完全可以自己添加进来。

版本控制:

2013.07.08,版本 1.0

1、增加删除分类删除数据功能

2、增加和更新-编辑器、图片上传、复选框等功能

类文件代码-2013年7月8日更新:

  1. <?php
  2. /*
  3. wordpress分类法自定义字段类文件
  4. Version: 1.0
  5. Author: 树是我的朋友
  6. Author URI: http://www.ashuwp.com
  7. License: http://www.ashuwp.com/courses/highgrade/313.html
  8. */
  9. class ashu_taxonomy_feild{
  10.     var $options;
  11.     var $taxonomyinfo;
  12.     function __construct($options,$taxonomyinfo){
  13.         $this->options = $options;
  14.         $this->taxonomyinfo = $taxonomyinfo;
  15.         foreach($this->taxonomyinfo as $taxonomy){
  16.                 add_action($taxonomy.\'_add_form_fields\', array(&$this, \'taxonomy_fields_adds\'), 10, 2);
  17.                 add_action($taxonomy.\'_edit_form_fields\', array(&$this, \'taxonomy_metabox_edit\'), 10, 2);
  18.                 add_action(\'created_\'.$taxonomyarray(&$this, \'save_taxonomy_metadata\'), 10, 1);
  19.                 add_action(\'edited_\'.$taxonomy,array(&$this, \'save_taxonomy_metadata\'), 10, 1);
  20.                 add_action(\'admin_menu\', array(&$this, \'init_taxonomy\'));
  21.                 add_action(\'delete_\'.$taxonomyarray(&$this,\'delete_taxonomy_metadata\'),10,1);
  22.         }
  23.     }
  24.     function init_taxonomy(){
  25.         if(basename$_SERVER[\'PHP_SELF\']) == \"edit-tags.php\") {
  26.             //注意加载的脚本的url
  27.             wp_enqueue_style(\'cate_fields_css\', TEMJS_URI. \'cate_fields.css\');
  28.             wp_enqueue_script(\'cate_fields_js\',TEMJS_URI. \'cate_fields.js\');
  29.             wp_enqueue_script(\'thickbox\');
  30.             wp_enqueue_style(\'thickbox\');
  31.         }
  32.     }
  33.     /*********添加分类页面*******/
  34.     function taxonomy_fields_adds($tag){
  35.         foreach($this->options as $option){
  36.             if( (!isset($option[\"edit_only\"]) || !$option[\"edit_only\"] ) ){
  37.             if (method_exists($this$option[\'type\'])){
  38.                 echo \'<div class=\"form-field\">\';
  39.                 echo \'<label for=\"\'.$option[\'id\'].\'\" >\'.$option[\'name\'].\'</label>\';
  40.                 $this->$option[\'type\']($option);
  41.                 echo \'</div>\';
  42.             }
  43.             }
  44.         }
  45.     }
  46.     /*************编辑分类页面*****************/
  47.     function taxonomy_metabox_edit($tag){
  48.         foreach($this->options as $option){
  49.             if (method_exists($this$option[\'type\'])){
  50.                 if(get_term_meta($tag->term_id , $option[\'id\']) !== \"\"){
  51.                     $option[\'std\'] = get_term_meta($tag->term_id,$option[\'id\'], true);
  52.                 }
  53.                 echo \'<tr class=\"form-field\">\';
  54.                 echo \'<th scope=\"row\" valign=\"top\">\';
  55.                 echo \'<label for=\"\'.$option[\'id\'].\'\" >\'.$option[\'name\'].\'</label>\';
  56.                 echo \'</th>\';
  57.                 echo \'<td>\';
  58.                 $this->$option[\'type\']($option);
  59.                 echo \'</td>\';
  60.                 echo \'</tr>\';
  61.             }
  62.         }
  63.     }
  64.     /**********删除数据******/
  65.     function delete_taxonomy_metadata($term_id){
  66.         foreach($this->options as $option){
  67.             delete_term_meta($term_id,$option[\'id\']);
  68.         }
  69.     }
  70.     /**************保存数据*****************/
  71.     function save_taxonomy_metadata($term_id){
  72.         foreach($this->options as $option){
  73.             if(isset($_POST[$option[\'id\']])){
  74.                 if(!current_user_can(\'manage_categories\')){
  75.                     return $term_id ;
  76.                 }
  77.                 if$option[\'type\'] == \'tinymce\' ){
  78.                     $data =  stripslashes($_POST[$option[\'id\']]);
  79.                 }elseif$option[\'type\'] == \'checkbox\' ){
  80.                     $data =  $_POST[$option[\'id\']];
  81.                 }else{
  82.                     $data = htmlspecialchars($_POST[$option[\'id\']], ENT_QUOTES,\"UTF-8\");
  83.                 }
  84.                 if(get_term_meta($term_id , $option[\'id\']) == \"\")
  85.                     add_term_meta($term_id , $option[\'id\'], $data, true);
  86.                 elseif($data != get_term_meta($term_id , $option[\'id\'], true))
  87.                     update_term_meta($term_id , $option[\'id\'], $data);
  88.                 elseif($data == \"\")
  89.                     delete_term_meta($term_id , $option[\'id\'], get_term_meta($term_id , $option[\'id\'], true));
  90.             }
  91.         }
  92.     }
  93.     /******提示信息******/
  94.     function info($option){
  95.         echo \'<p>\'.$option[\'desc\'].\'</p>\';
  96.     }
  97.     /*******文本输入框text*******/
  98.     function text($option){
  99.             echo \'<input type=\"text\" size=\"\'.$option[\'size\'].\'\" value=\"\';
  100.             echo $option[\'std\'];
  101.             echo \'\" id=\"\'.$option[\'id\'].\'\" name=\"\'.$option[\'id\'].\'\"/>\';
  102.             echo \'<p>\'.$option[\'desc\'].\'</p>\';
  103.     }
  104.     /******文本域***********/
  105.     function textarea($option){
  106.         echo \'<textarea cols=\"40\" rows=\"5\" id=\"\'.$option[\'id\'].\'\" name=\"\'.$option[\'id\'].\'\">\'.$option[\'std\'].\'</textarea>\';
  107.         echo \'<p>\'.$option[\'desc\'].\'</p>\';
  108.     }
  109.     /**********单选框************/
  110.     function radio( $option ){
  111.         foreach$option[\'buttons\'] as $key=>$value ) {
  112.             $checked =\"\";
  113.             if$option[\'std\'] == $key) {
  114.                 $checked = \'checked = \"checked\"\';
  115.             }
  116.             echo \'<input \'.$checked.\' type=\"radio\" class=\"kcheck\" value=\"\'.$key.\'\" name=\"\'.$option[\'id\'].\'\"/>\'.$value;
  117.         }
  118.     }
  119.     /**************复选框*******************/
  120.     function checkbox($option) {
  121.         foreach$option[\'buttons\'] as $key=>$value ) {
  122.             $checked =\"\";
  123.             if( is_array($option[\'std\']) && in_array($key,$option[\'std\'])) {
  124.                 $checked = \'checked = \"checked\"\';
  125.             }
  126.             echo \'<input \'.$checked.\' type=\"checkbox\" class=\"kcheck\" value=\"\'.$key.\'\" name=\"\'.$option[\'id\'].\'[]\"/>\'.$value;
  127.         }
  128.     }
  129.     /***********下拉选择***********/
  130.     function dropdown($option){
  131.         if($option[\'subtype\'] == \'page\') {
  132.             $select = \'Select page\';
  133.             $entries = get_pages(\'title_li=&orderby=name\');
  134.         }else if($option[\'subtype\'] == \'sidebar\'){
  135.             global $wp_registered_sidebars;
  136.             $select = \'Select a special sidebar\';
  137.             $entries = $wp_registered_sidebars;
  138.         }else if($option[\'subtype\'] == \'cat\'){
  139.             $select = \'Select category\';
  140.             $entries = get_categories(\'title_li=&orderby=name&hide_empty=0\');
  141.         }else{
  142.             $select = \'Select...\';
  143.             $entries = $option[\'subtype\'];
  144.         }
  145.         echo \'<select class=\"postform\" id=\"\'. $option[\'id\'] .\'\" name=\"\'. $option[\'id\'] .\'\"> \';
  146.             echo \'<option value=\"\">请选择...</option>  \';
  147.             foreach ($entries as $key => $entry){
  148.                 if($option[\'subtype\'] == \'page\'){
  149.                     $id = $entry->ID;
  150.                     $title = $entry->post_title;
  151.                 }else if($option[\'subtype\'] == \'cat\'){
  152.                     $id = $entry->term_id;
  153.                     $title = $entry->name;
  154.                 }else if($option[\'subtype\'] == \'sidebar\'){
  155.                     $id = $entry[\'id\'];
  156.                     $title = $entry[\'name\'];
  157.                 }else{
  158.                     $id = $key;
  159.                     $title = $entry;
  160.                 }
  161.                 $selected=\'\';
  162.                 if$option[\'std\'] == $id ){
  163.                     $selected = \"selected=\'selected\'\";
  164.                 }
  165.                 echo\"<option $selected value=\'\"$id .\"\'>\"$title.\"</option>\";
  166.             }
  167.         echo \'</select>\';
  168.         echo \'<p>\'.$option[\'desc\'].\'</p>\';
  169.     }
  170.     /***************图片上传**********************/
  171.     function upload($option){
  172.         $prevImg = \'\';
  173.         if($option[\'std\'] != \'\'){$prevImg = \'<img src=\'.$option[\'std\'].\' alt=\"\" />\';}
  174.         echo \'<div class=\"preview_pic_optionspage\" id=\"\'.$option[\'id\'].\'_div\">\'.$prevImg.\'</div>\';
  175.         echo $option[\'desc\'].\'<br/>\';
  176.         echo \'<input type=\"text\" size=\"60\" value=\"\'.$option[\'std\'].\'\" name=\"\'.$option[\'id\'].\'\" class=\"upload_pic_input\" />\';
  177.         echo \'&nbsp;<a onclick=\"return false;\" title=\"\" class=\"cat_up button thickbox\" id=\"\'.$option[\'id\'].\'\" href=\"media-upload.php?type=image&amp;TB_iframe=true\">Insert Image</a>\';
  178.     }
  179.     /*******************编辑器****************************/
  180.     function tinymce($option){
  181.         wp_editor( $option[\'std\'], $option[\'id\'],$settings=array(\'tinymce\'=>1,\'media_buttons\'=>0,) );
  182.     }
  183. }
  184. ?>

标签:

提交需求或反馈

Demand feedback