Не удается обновить WordPress или добавить новый плагин, когда вы вошли в систему как администратор (используя тему Sage)
Я вошел в бэкэнд сайта WordPress как администратор. Тема была построена с использованием темы Sage Starter.
Во время разработки не возникало проблем с добавлением плагинов или обновлением ядра, но с момента перехода в производственную среду нет кнопки "Добавить новый" для плагинов, и сообщение об обновлении гласит "WordPress 4.3 доступен! Пожалуйста, сообщите администратору сайта".
Я пытался вручную изменить db_version
поле wp_options
таблица для принудительного обновления базы данных. Это не сработало.
Я попытался отключить все плагины и перейти на двадцатую тему - это не сработало.
Проверены все разрешения на сервере - радости нет.
Как я могу решить эту проблему?
4 ответа
Последняя тема Sage Starter использует .env
файл для настройки среды через phpdotenv
библиотека. Он находится в каталоге над общедоступным веб-корнем HTML установки WordPress.
Если вы изменили строку WP_ENV=development
в WP_ENV=production
в .env
файл, когда сайт начал работать, то, вероятно, это является источником проблемы.
Если вы посмотрите на фактическую конфигурацию для производственной среды в /config/environments/production.php
, вы видите следующее:
define('DISALLOW_FILE_MODS', true); // this disables all file modifications including updates and update notifications
Это говорит WordPress не разрешать ручное добавление плагинов или разрешать обновления ядра. Вы можете просто отредактировать это так:
define('DISALLOW_FILE_MODS', false); // allow file modifications including updates and update notifications
После того, как вы изменили ядро или добавили плагины, вы можете просто поменять его обратно, если вы не хотите, чтобы администраторы имели такие возможности, но лучшим решением было бы установить плагин диспетчера возможностей и определить роль администратора с немного более низкими привилегиями.,
Для тех, у кого есть эта проблема, есть другая строка, которую вам, возможно, придется найти в файле wp-config или functions и изменить на false:
define('DISALLOW_FILE_EDIT', true);
Я не могу найти линию define('DISALLOW_FILE_MODS', true);
или же define('DISALLOW_FILE_MODS', false);
в моем wp-config.php
файл.
Мое решение: я только что добавил строку define('DISALLOW_FILE_MODS', false);
в wp-config.php
файл после define('DB_HOST', 'localhost'); /* or anywhere */
Это решило мою проблему, и я смог снова обновить ядро, тему и плагины.
В моем случае проблема была вызвана удаленными разрешениями для моей группы пользователей «администраторы».
Точнее,update_core
отсутствовали вwp_options
столoption_name = %wp-table-prefix%_wp_user_roles
Самый простой способ исправить это — установить плагин PublishPress Capabilities , найти его можно во вкладке «Администратор». Сначала нажмите черный X (отменить все) и сохраните, а затем вы можете включить его.
То же самое может быть для обновлений плагинов и тем.