搜索热词

WordPress中文社区 > 帖子 > , , , > WordPress怎么在启用主题的时候创建一个自定义数据表?

WordPress怎么在启用主题的时候创建一个自定义数据表?

已解决

最近在自己开发网站积分系统的时候,需要自定义一个积分获得记录的一个数据表,希望在启用当前主题的时候进行检查,如果没有该数据表,那么就创建一个,这需要怎么写啊!

发布于08月26日 被浏览 815 次
点赞 已收藏 打赏 分享

    4 个回答

  1. WordPress日记

    启用主题这个动作使用load-themes.php这个钩子,参考代码如下

    //创建声望记录数据表
    add_action( 'load-themes.php', 'the_table_install' );
    function the_table_install() {    
        global $wpdb; 
        $table_name = isset($table_prefix) ? ($table_prefix . 'prestige') : ($wpdb->prefix . 'prestige'); //获取表前缀,并设置新表的名称 
        if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
            $sql = " CREATE TABLE `" . $table_name . ("` (
            `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 '操作声望',
            `new` int(11) DEFAULT NULL COMMENT '新声望',
            `type` enum('register','login','publish_post','publish_course','comment','publish_question','answer_question','fabulous','cancel_fabulous','collect','cancel_collect') NOT NULL DEFAULT 'publish_post' COMMENT '类型:注册 登录 发文章 发教程 评论 提问 回答问题 被点赞 取消点赞 被收藏 取消收藏',
            `time` datetime DEFAULT NULL COMMENT '操作时间',
            `note` varchar(255) DEFAULT NULL COMMENT '说明备注',
            PRIMARY KEY (`id`)
            ) ENGINE=MyISAM DEFAULT CHARSET=") . DB_CHARSET . (" COMMENT='声望记录表';");
            require_once (ABSPATH . ("wp-admin/includes/upgrade.php"));
            dbDelta($sql);
        }
    } 

     

  2. Avatar
    grantchao 0

    真的还是没有吗

  3. WordPress日记
    WordPress日记 0

    再测试一下吧

  4. WordPress日记
    WordPress日记 0

    测试一下有回复的时候会不会收到邮箱提示