首页 > 代码库 > WordPress插件制作教程(五): 创建新的数据表
WordPress插件制作教程(五): 创建新的数据表
上一篇讲解了怎样将数据保存到数据库,今天为大家讲解创建新的数据表,也就是说当我们激活插件的时候,会在该数据库下面创建一个新的数据表出来。原理很简单,激活插件的时候运行创建数据库的代码。看下面代码:
<?php/** * @package 创建数据表 * @version 1.0 *//*Plugin Name: 创建数据表Plugin URI: http://www.cnblogs.com/fxmbz/p/4060296.htmlDescription: 这是一款简单的插件样例,激活插件的时候,会在该数据库下面创建一个新的数据表Author: mynameVersion: 1.0Author URI: http://www.cnblogs.com/fxmbz*/// 声明常量来存储插件版本号 和 该插件最低要求WordPress的版本define(‘MY_PLUGIN_VERSION_NUM‘, ‘1.0‘);define(‘MY_PLUGIN_MINIMUM_WP_VERSION‘, ‘4.0‘);// 声明全局变量$wpdb 和 数据表名常量global $wpdb;define(‘MY_NEW_TABLE‘, $wpdb->prefix . ‘mynewtable‘);// 插件激活时,运行回调方法创建数据表, 在WP原有的options表中插入插件版本号register_activation_hook(__FILE__, ‘plugin_activation_cretable‘);function plugin_activation_cretable() { global $wpdb; /* * We‘ll set the default character set and collation for this table. * If we don‘t do this, some characters could end up being converted * to just ?‘s when saved in our table. */ $charset_collate = ‘‘; if (!empty($wpdb->charset)) { $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}"; } if (!empty( $wpdb->collate)) { $charset_collate .= " COLLATE {$wpdb->collate}"; } $sql = "CREATE TABLE " . MY_NEW_TABLE . " ( id mediumint(9) NOT NULL AUTO_INCREMENT, time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, name tinytext NOT NULL, text text NOT NULL, url varchar(55) DEFAULT ‘‘ NOT NULL, UNIQUE KEY id (id) ) $charset_collate;"; require_once( ABSPATH . ‘wp-admin/includes/upgrade.php‘ ); dbDelta( $sql ); // update_option()方法,在options表里如果不存在更新字段,则会创建该字段,存在则更新该字段 update_option(‘my_plugin_version_num‘, MY_PLUGIN_VERSION_NUM);}// 插件激活时,运行回调方法在数据表中插入数据, register_activation_hook(__FILE__, ‘plugin_activation_insertdate‘);function plugin_activation_insertdate() { global $wpdb; $data[‘name‘] = ‘我的博客‘; $data[‘text‘] = ‘欢迎来到我的博客!‘; $data[‘url‘] = ‘http://www.cnblogs.com/fxmbz‘; $wpdb->insert(MY_NEW_TABLE, $data);}// 当加载插件时,运行回调方法检查插件版本是否有更新,add_action(‘plugins_loaded‘, ‘myplugin_update_db_check‘);function myplugin_update_db_check() { // 获取到options表里的插件版本号 不等于 当前插件版本号时,运行创建表方法,更新数据库表 if (get_option(‘my_plugin_version_num‘) != MY_PLUGIN_VERSION_NUM) { plugin_activation_cretable(); }}// 插件停用时,运行回调方法删除数据表,删除options表中的插件版本号register_deactivation_hook(__FILE__, ‘plugin_deactivation_deltable‘);function plugin_deactivation_deltable() { global $wpdb; $wpdb->query("DROP TABLE IF EXISTS " . MY_NEW_TABLE); delete_option(‘my_plugin_version_num‘);}
基本都是使用的WordPress数据库相关函数来操作的,这个需要大家熟悉一下。官方文档:http://codex.wordpress.org/Creating_Tables_with_Plugins
WordPress插件制作教程(五): 创建新的数据表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。