Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php-开发Wordpress插件_Php_Wordpress_Plugins - Fatal编程技术网

Php-开发Wordpress插件

Php-开发Wordpress插件,php,wordpress,plugins,Php,Wordpress,Plugins,我正在开发我的第一个Wordpress插件,现在,它应该做的就是: 安装时:创建表 我的代码: if ( ! class_exists ( 'My_Plugin' ) ) { class My_Plugin { /** * Construct the plugin object **/ public function __construct () { // register actions } /** * Ac

我正在开发我的第一个Wordpress插件,现在,它应该做的就是:

  • 安装时:创建表
  • 我的代码:

    if ( ! class_exists ( 'My_Plugin' ) )
    {
    class My_Plugin
    {
        /**
         * Construct the plugin object
        **/
        public function __construct ()
        {
            // register actions
        }
    
        /**
         * Activate the plugin
        **/
        public static function activate ()
        {
            global $wpdb;
    
            $tableName = tableName ( $wpdb );
    
            if ( ! tableExists ( $wpdb , $tableName ) ) 
            {
                $sql = "CREATE TABLE " . $tableName . " (
                    id INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
                    any_column VARCHAR(255) NOT NULL,
                    UNIQUE KEY id (id)
                );";
    
                require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
                dbDelta($sql);
            }
        }
    
        /**
         * Deactivate the plugin
        **/     
        public static function deactivate ()
        {
            // Nothing
        }
    
    
        // Return table name
        public function tableName ( $wpdb , $tableName = 'new_table' )
        {
            $tableName = $wpdb->prefix . $tableName;
            return $tableName;
        }
    
    
        // Check if table already exists
        public function tableExists ( $wpdb , $tableName )
        {
            try
            {
                $result = $wpdb->query("SELECT 1 FROM $tableName LIMIT 1");
            } 
            catch ( Exception $e )
            {
                return FALSE;
            }
    
            return $result !== FALSE;
        }
    }
    }
    
    if ( class_exists ( 'My_Plugin' ) )
    {
        // Activation and Deactivation hooks
        register_activation_hook ( __FILE__ , array ( 'My_Plugin' , 'activate' ) );
        register_deactivation_hook ( __FILE__ , array ( 'My_Plugin' , 'deactivate' ) );
    
        // Instantiate the plugin class
        $plugin_template = new My_Plugin ();
    }
    
    但返回此错误:

    Fatal error: Call to undefined function tableName() in /www/htdocs/path/to/file.php on line
    
    但我看不出我的错误,我真的不知道为什么这个函数是未定义的…有人可以帮我吗

    你好

    tableName()
    不是一个全局函数,它是
    myu插件的一种方法。简单的方法是将
    activate()
    deactivate()
    转换为非静态函数,并使用
    $this->tableName()

    否则,您需要在
    activate()
    中构造一个新的
    My\u Plugin
    实例,然后通过该-
    $class->tableName()
    访问它

    您可以查看以了解更多信息。

    tableName()
    不是一个全局函数,它是
    myu插件的一种方法。简单的方法是将
    activate()
    deactivate()
    转换为非静态函数,并使用
    $this->tableName()

    否则,您需要在
    activate()
    中构造一个新的
    My\u Plugin
    实例,然后通过该-
    $class->tableName()
    访问它

    您可以查看以了解更多信息。

    tableName()
    不是一个全局函数,它是
    myu插件的一种方法。简单的方法是将
    activate()
    deactivate()
    转换为非静态函数,并使用
    $this->tableName()

    否则,您需要在
    activate()
    中构造一个新的
    My\u Plugin
    实例,然后通过该-
    $class->tableName()
    访问它

    您可以查看以了解更多信息。

    tableName()
    不是一个全局函数,它是
    myu插件的一种方法。简单的方法是将
    activate()
    deactivate()
    转换为非静态函数,并使用
    $this->tableName()

    否则,您需要在
    activate()
    中构造一个新的
    My\u Plugin
    实例,然后通过该-
    $class->tableName()
    访问它


    您可以查看以了解更多信息。

    此处是插件激活中创建表的函数
    注册激活挂钩(\uuuuu文件\uuuuu,“创建表”)
    函数create_tabletag()
    { 
    
    require_once(ABSPATH.'wp admin/includes/upgrade.php');
    $query=“创建表(如果不存在)选项卡列表(
    tab_id INT非空自动增量主键,
    名字VARCHAR(40),
    isvisible VARCHAR(20)
    )ENGINE=MYISAM字符集utf8校对utf8_常规_ci;“;
    dbDelta($query);//此函数用于创建表
    }

    这里是插件激活中创建表的函数
    注册激活钩子(\uuuu文件\uuuu,“创建表”)
    函数create_tabletag()
    { 
    
    require_once(ABSPATH.'wp admin/includes/upgrade.php');
    $query=“创建表(如果不存在)选项卡列表(
    tab_id INT非空自动增量主键,
    名字VARCHAR(40),
    isvisible VARCHAR(20)
    )ENGINE=MYISAM字符集utf8校对utf8_常规_ci;“;
    dbDelta($query);//此函数用于创建表
    }

    这里是插件激活中创建表的函数
    注册激活钩子(\uuuu文件\uuuu,“创建表”)
    函数create_tabletag()
    { 
    
    require_once(ABSPATH.'wp admin/includes/upgrade.php');
    $query=“创建表(如果不存在)选项卡列表(
    tab_id INT非空自动增量主键,
    名字VARCHAR(40),
    isvisible VARCHAR(20)
    )ENGINE=MYISAM字符集utf8校对utf8_常规_ci;“;
    dbDelta($query);//此函数用于创建表
    }

    这里是插件激活中创建表的函数
    注册激活钩子(\uuuu文件\uuuu,“创建表”)
    函数create_tabletag()
    { 
    
    require_once(ABSPATH.'wp admin/includes/upgrade.php');
    $query=“创建表(如果不存在)选项卡列表(
    tab_id INT非空自动增量主键,
    名字VARCHAR(40),
    isvisible VARCHAR(20)
    )ENGINE=MYISAM字符集utf8校对utf8_常规_ci;“;
    dbDelta($query);//此函数用于创建表
    }

    // Instantiate the plugin class
    $plugin_template = new My_Plugin ();
    
    register_activation_hook ( __FILE__ , array ( $plugin_template , 'activate' ) );
    register_deactivation_hook ( __FILE__ , array ( $plugin_template , 'deactivate' ) );
    
    public function activate ()
    {
        global $wpdb;
    
        $tableName = $this->tableName ( $wpdb );
    
        if ( ! $this->tableExists ( $wpdb , $tableName ) ) 
        {
            $sql = "CREATE TABLE " . $tableName . " (
                id INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
                any_column VARCHAR(255) NOT NULL,
                UNIQUE KEY id (id)
            );";
    
            require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
            dbDelta($sql);
        }
    }