【问题标题】:Wordpress not recognizing function during plugin activationWordpress 在插件激活期间无法识别功能
【发布时间】:2016-06-16 15:43:58
【问题描述】:

当我尝试激活我的插件时出现此错误:

call_user_func_array() 期望参数 1 是一个有效的回调,函数 'fancy_lists_create_table' 未找到或 /Applications/XAMPP/xamppfiles/htdocs/intranet/wp-includes/plugin.php 中的无效函数名称(第 525 行)

这是一个插件的输出,该插件用于调试常见的“意外输出的 xxx 个字符”错误。我不明白为什么该功能无效。代码如下:

namespace fancy_lists; 
register_activation_hook( __FILE__, 'fancy_lists_create_table' );

function fancy_lists_create_table(){
    global $wpdb;

    $table_name = $wpdb->prefix.'fancy_lists';

    if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {

        $charset_collate = $wpdb->get_charset_collate();

        $sql = "CREATE TABLE $table_name (
          id mediumint(9) NOT NULL AUTO_INCREMENT,
          created datetime DEFAULT NOW() NOT NULL,
          created_by text NOT NULL,
          list_name text NOT NULL,
          column_config text NOT NULL,
          permissions text NOT NULL,
          notifications text NOT NULL,
          UNIQUE KEY id (id)
        ) $charset_collate;";

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

}

【问题讨论】:

    标签: php wordpress plugins


    【解决方案1】:

    register_activation_hook() 不知道命名空间。您必须指定它:

    register_activation_hook( __FILE__, __NAMESPACE__ . '\fancy_lists_create_table' );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 2011-06-20
      • 2013-01-02
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      相关资源
      最近更新 更多