wordpress插件新建自定义Mysql数据表

        我们在写插件的时候,一般情况下是需要用到Mysql数据表来储存我们的插件配置、插件信息(数据和使用信息),简单的插件我们倒是可以通过wp_options表来储存我们的信息。wordpress已经为我们提供了一系列操作wp_options数据表的函数,add_option、update_option、get_option、delete_option…但是使用这个wp_options只适用于一些设置上的东西,在一些日志记录、使用记录时就明显不适用了。这时我们就需要在插件启动时,新建自定义表来储存我们的信息。

        我们可以用到两个函数:

/* 注册激活插件时调用的函数 */ 
register_activation_hook( __FILE__, 'display_prompt_install');
/* 注册停用插件时调用的函数 */ 
register_deactivation_hook( __FILE__, 'display_prompt_remove');

        在插件启动时,执行函数display_prompt_install,插件停用时执行display_prompt_remove。

        我们可以这样写,来新建我们的MySQL数据表:

function display_prompt_install() {
    /* 在数据库的 wp_options 表中添加一条记录,第二个参数为默认值 */ 
    //add_option("ues-on", "1", '', 'yes');//这里是使用wp_options表储存一个ues-on字段,并记录值为1
    wpzan_install();//这里是新建自定义表的一个操作,$wpzan_table_name是表名
}
$wpzan_table_name = isset($table_prefix) ? ($table_prefix . 'zan') : ($wpdb->prefix . 'zan');
function wpzan_install(){
global $wpdb, $wpzan_table_name;
if( $wpdb->get_var("show tables like '{$wpzan_table_name}'") != $wpzan_table_name ) {//判断是否有表,无则新建
$wpdb->query("CREATE TABLE {$wpzan_table_name} (
id      BIGINT(20) NOT NULL AUTO_INCREMENT,
post_id BIGINT(20) NOT NULL,
user_id BIGINT(20) NOT NULL,
ip_address VARCHAR(25) NOT NULL,
UNIQUE KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1");
}
}
function wpzan_uninstall(){//再附带一个删除数据表的方法,可以在插件停用后删除数据表,或者是让用户自己选择
global $wpdb, $wpzan_table_name;
$wpdb->query("DROP TABLE IF EXISTS {$wpzan_table_name}");
}

之后,我又写过相似的文章:

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享