Не удается обновить 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 (отменить все) и сохраните, а затем вы можете включить его.

То же самое может быть для обновлений плагинов и тем.

Другие вопросы по тегам