Поддержка Плагины Мой плагин в мультисайте выдает ошибку

  • Он отлично работал на моем одиночном сайте, но когда я создал сеть и перенес все на нее, при активации плагина на одном сайте, в главном меню плагинов Сети выдается ошибка:

    Fatal error: Uncaught Error: Call to undefined function wp_get_current_user() in E:\OpenServer\domains\****\wp-includes\capabilities.php:692 Stack trace: #0 E:\OpenServer\domains\****\wp-admin\network\settings.php(16): current_user_can() #1 E:\OpenServer\domains\****\wp-content\plugins\<strong>gamerangeslider</strong>\gamerangeslider.php(32): require_once('E:\\OpenServer\\d...') #2 E:\OpenServer\domains\****\wp-settings.php(391): include_once('E:\\OpenServer\\d...') #3 E:\OpenServer\domains\****\wp-config.php(100): require_once('E:\\OpenServer\\d...') #4 E:\OpenServer\domains\****\wp-load.php(37): require_once('E:\\OpenServer\\d...') #5 E:\OpenServer\domains\****\wp-admin\admin.php(34): require_once('E:\\OpenServer\\d...') #6 E:\OpenServer\domains\****\wp-admin\network\admin.php(13): require_once('E:\\OpenServer\\d...') #7 E:\OpenServer\domains\****\wp-admin\network\plugins.php(11): require_once('E:\\OpenServer\\d...') #8 {main} thrown in E:\OpenServer\domains\****\wp-includes\capabilities.php on line 692

    Мой плагин: gamerangeslider
    Что он хочет? Кто нибудь разъясните пожалуйста.

    • Тема изменена 1 месяц, 1 неделя назад пользователем cresis.
    • Тема изменена 1 месяц, 1 неделя назад пользователем cresis. Причина: Дополнил информацию
Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Если в каталоге плагина есть файл settings.php, который подключается просто по имени:

    
    require 'settings.php';
    

    то вместо него подключается wp-admin/network/settings.php, поскольку каталог wp-admin/network/ оказывается на тот момент текущим.

    Нужно в require и include всегда прописывать полный путь:

    
    require plugin_dir_path( __FILE__ ) . 'settings.php';
    

    чтобы случайно не подключить файл с тем же именем из совсем другого каталога.

    Здесь проблема описана чуть более подробно: «Исправляем: PHP Fatal error: Call to undefined function wp_get_current_user() на мультисайте».

    Если в каталоге плагина есть файл settings.php, который подключается просто по имени:

    Точно, есть такое. Сейчас поменяю.
    А можно Вас попросить чуть подробнее описать текст ошибки, что бы я имел чуть более обширное представление о том, что мне пытается сказать дебагер? Вернее он много путей написал, но что конкретно ему не нравится, я сделать заключение не могу.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Просто вместо вашего файла подключился другой, в котором вызывается функция current_user_can(), а в ней — wp_get_current_user().

    Но wp_get_current_user() в этот момент недоступна, потому что находится в файле wp-includes/pluggable.php. В нём собраны функции, которые плагины могут переопределить, поэтому он подключается позже плагинов.

Просмотр 3 ответов — с 1 по 3 (всего 3)