上一篇讲解了怎样将数据保存到数据库,今儿为大家讲解创建新的数据表,也就是说当我们激活插件的时候,会在该数据库下面创建一个新的数据表出来。原理很简单,激活插件的时候运行创建数据库的代码,这样就可以了。看下面代码:

<?php

/*
Plugin Name: 创建数据表
Plugin URI: http://www.favortt.com/wordpres-plugins-two.html
Description: 这是一款简单的插件样例,将自己定义好的内容显示每篇文章里面。
Author: 磊子
Version: 0.1
Author URI: http://www.favortt.com
*/

global $leizi_db_version,$wpdb;
$leizi_db_version = "1.0";

function leizi_install()
{
global $leizi_db_version,$wpdb;

$table_name = $wpdb->prefix."newtable";

$sql = "CREATE TABLE " . $table_name . " (
id mediumint(9) NOT NULL AUTO_INCREMENT,
time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
name tinytext NOT NULL,
text text NOT NULL,
url VARCHAR(55) DEFAULT '' NOT NULL,
UNIQUE KEY id (id)
);";

require_once(ABSPATH . 'wp-admin/includes/upgrade.php');

dbDelta($sql);

add_option("leizi_db_version", $leizi_db_version);
}

register_activation_hook(__FILE__,'leizi_install'); 

//插件启用时激活leizi_install函数。

?>

这样一个简单的数据表创建就完成了,这里面比较麻烦的是编写SQL语句,不能出错,所以建议大家现在Phpmyadmin里面临时创建好你需要的数据表,点击执行的时候会出显示SQL代码,可以直接将那个代码贴过来使用,这样出错的几率会很小。数据表创建之后,我们还需要考虑如何插入数据,删除数据表,等这些操作。

插入数据很简单,需要使用WordPress相关的数据库函数。如:

function leizi_install_data()
{
global $wpdb;
$table_name = $wpdb->prefix."newtable";
$welcome_name = "磊子博客";
$welcome_text = "欢迎来到磊子博客!";

$rows_affected = $wpdb->insert($table_name,array( 'time' => current_time('mysql'), 'name' => $welcome_name, 'text' => $welcome_text ) );

}

register_activation_hook(__FILE__,'leizi_install_data');

删除数据表可以使用如下代码:

<?php
function pluginUninstall() {
  global $wpdb;
  $thetable = $wpdb->prefix."newtable";
  $wpdb->query("DROP TABLE IF EXISTS $thetable");
}
?>

基本都是使用的WordPress数据库相关函数来操作的,这个需要大家熟悉一下。可以浏览下磊子之前写的两篇文章 WordPress数据库接口分析之查询部分WordPress数据库接口分析之增改其他部分 我们在制作插件的时候,都会用到这些函数方法,大家在用的时候注意下。