【问题标题】:Plugin could not be activated because it triggered a fatal error: unexpected 'require_once'无法激活插件,因为它触发了致命错误:意外的“require_once”
【发布时间】:2015-11-18 20:23:16
【问题描述】:

我正在尝试使用插件在 MySQL 中创建自定义表。这是相同的代码:

<?php
/*
Plugin Name: Zenva User Table
Plugin URI: http://www.getevangelized.com
Description: A custom table for storing user data
Version: 1.0
Author: Manas Chaturvedi
Author URI: http:www.getevangelized.com
License: GPL2
*/

register_activation_hook(__FILE__, 'create_update_table');


function create_update_table()
{
    global $wpdb;
    $tablename = $wpdb->prefix."twitteruser";

    if($wpdb->get_var("SHOW TABLES LIKE '$tablename'") != $tablename)
    {
        $sql = "CREATE TABLE `$tablename`(
            `user_id` INT(20) NOT NULL AUTO_INCREMENT,
            `twitter_handle` VARCHAR(100) NOT NULL,
            `oauth_token` VARCHAR(200) NOT NULL,
            `oauth_token_secret` VARCHAR(200) NOT NULL,
            `created` DATETIME,
            PRIMARY KEY (user_id)
            );" 

        require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
        dbDelta($sql);
    }
}

?>

但是,在从 WordPress 仪表板激活插件时,我遇到了以下错误:

Parse error: syntax error, unexpected 'require_once' (T_REQUIRE_ONCE) in /opt/lampp/htdocs/wordpress/wp-content/plugins/user_table/user_table.php on line 31

这里似乎有什么问题?我确实检查过我的 WordPress 安装中是否安装了 upgrade.php 文件。

这里似乎有什么问题?

【问题讨论】:

    标签: php mysql plugins wordpress


    【解决方案1】:

    $sql = "…" 块末尾缺少分号。

    $sql = "CREATE TABLE `$tablename`(
        `user_id` INT(20) NOT NULL AUTO_INCREMENT,
        `twitter_handle` VARCHAR(100) NOT NULL,
        `oauth_token` VARCHAR(200) NOT NULL,
        `oauth_token_secret` VARCHAR(200) NOT NULL,
        `created` DATETIME,
        PRIMARY KEY (user_id)
        );";  // <---- here
    

    【讨论】:

    • 不敢相信我放错了分号。几个小时以来一直在尝试调试它。谢谢!
    猜你喜欢
    • 2014-04-09
    • 2020-09-13
    • 2019-04-27
    • 1970-01-01
    • 2017-04-30
    • 2021-12-31
    • 2016-08-15
    • 2016-08-05
    相关资源
    最近更新 更多