最近在自己开发网站积分系统的时候,需要自定义一个积分获得记录的一个数据表,希望在启用当前主题的时候进行检查,如果没有该数据表,那么就创建一个,启用主题这个动作使用 load-themes.php 这个钩子,参考代码如下:
- <pre lang="PHP&X | # zquot; line="1" escape3 ^ @ ( { | D R ^d="true&quoY ? 6 ? b y * Et; >//创建声望记录数据表
- add_action( '. # I } F =load-themes.php', 'the_table_ic d {nstall' )r N c 7;;
- function the_table_install() {
- globa\ K l L n } [ - \l $wpdb;
- $table_name = isset($table_prefix)M k s d 6 O n ? ($tab* G f X T 3le_pref/ n K , i # { | (ixq x z q 2 Z # t { .) s _ g [ A ( # 'prestige') : ($wpdb->prefix . 'prest& 3 N - 8 { )ige'); //获取表前缀,并设G I L a置新表的名称
- if ($wpdb->get_var("f S o : \ USHOW TABy p / b z X n + JLES LIi O b T ` C r o tKE '$table_name'&qus ] e { ~ u C Y Bot;) != $table_name) ? c } W Q r123;
- $sql = " CREATE TABLE `" h U G l / = f ct; . $table_name . ("\ k ; 7 +` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `user_id` int(11) DEFAULT NULL COMMENT '用户id',
- `post_id` int(11) DEFAULT NULL COMMENT '文章id',
- `old` int(11) DEFAULT '0' COMMENT '原始声望',
- `apply` int(11) DEFAULT NULL COMMENT '操作声望',v F 7 2 l k m !
- `new` int(11) DEFAULT NULL% ! c ` j u @ COMMENT '新声望',
- `type` enum('register'c v 5 g l I,'login','publish_post_ % M t a X Q','pubv = 1 ^ f c Q _lish9 6 + e p , h I_course','comment','publish_question','answer_question',h / n M c {'fabulous','cancel_fabulous','collect','cancel_collect') NOT NULL DEFAULT 'pubK Y X # b %lish_p` A - q 8ost' COMMENT '类型:注册 登录 发文章 发教程 评论 提问 回答问题 被点赞 取消点赞 被收藏 取消收藏',
- `time` datetime DEFAULT NULL COMMENT '操作时间',
- `note` varchar(255) DEFAULT NULL COMMENT '说明备注',
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET="&t - k _ Q#41; . DB_CHARSET .: f I d (" COMMENT='声望记录表';");
- require_once (ABSPATH . (&quF 0 P X q Aot;wp-admin/includes/upgrade.php")B D 7 5 6 \ \;)p I e;
- dbDelta($sql);
- }
- }= u e;