我们在写插件的时候,一般情况下是需要用到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}");
}
之后,我又写过相似的文章:
wordpress 新建数据表储存信息
3年前
0 195 9
© 版权声明
文章版权归作者所有,未经允许请勿转载。
WWW.ANXKJ.TOP
暂无评论内容