Wordpress在插件激活期间无法识别功能

时间:2016-06-16 15:43:59

标签: php wordpress plugins

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

  

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

这是从一个调试" 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 );
    }

}

1 个答案:

答案 0 :(得分:2)

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

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