2016-06-16 2 views
1

Я получаю эту ошибку, когда я пытаюсь активировать плагин:Wordpress не распознает функцию во время плагин активации

call_user_func_array() ожидает параметр 1, чтобы быть действительным обратного вызова, функция «fancy_lists_create_table» не найден или недопустимое имя функции в /Applications/XAMPP/xamppfiles/htdocs/intranet/wp-includes/plugin.php на линии 525

Это был выход из плагина, который отлаживает «ххх символы непредвиденного выхода» ошибки, которые обычно видны. Я не понимаю, почему функция недействительна. Код ниже:

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); 
    } 

} 

ответ

2

register_activation_hook() не знает пространства имен. Вы должны указать его:

register_activation_hook(__FILE__, __NAMESPACE__ . '\fancy_lists_create_table'); 
Смежные вопросы