Как запретить правку тем и плагинов в админке WordPress через wp-config?

disallow file edit wordpress admin cover Без рубрики
Бэкап wp-config, define( 'DISALLOW_FILE_EDIT', true ) над stop editing, таблица отличий от DISALLOW_FILE_MODS и проверка обновлений плагинов без SSH.

Страшно открывать wp-config.php: одна лишняя запятая в строке define — и сайт с заявками превращается в белый экран. Наташа уже проходила это после вставки кода из форума в «Редактор тем»: хостинг прислал письмо о взломе, а восстановление заняло вечер. Сейчас ей нужно убрать редактор файлов из админки WordPress, но не перепутать DISALLOW_FILE_EDIT с DISALLOW_FILE_MODS и не отключить обновления плагинов. Ниже — одна строка в конфиге, бэкап файла и проверка меню без SSH; за вечер вы получите исчезнувший пункт «Редактор» и рабочие кнопки «Обновить» у плагинов.

DISALLOW_FILE_EDIT в wp-config.php отключает встроенные редакторы тем и плагинов в админке: пункт «Редактор» исчезает, а установка и обновление плагинов из «Консоль» остаётся. Строку вставляют над комментарием «That’s all, stop editing». Это не «полный щит» от взлома: официальный Hardening Guide честно пишет, что мера останавливает часть атак, но не блокирует загрузку вредоносного файла другими путями. Плагин hardening не обязателен — достаточно одной правильной define без опечатки в имени константы.

wp-config.php лежит в корне сайта; его правят через файловый менеджер хостинга или FTP. Редактор в админке удобен разработчику, но для салона или магазина это риск: украденный пароль админа открывает тот же экран правки PHP, что и у вас.

Поймите, зачем в админке вообще есть редактор и что уберёт одна константа

Шаги как карточки на столе: Поймите, зачем в админке вообще есть редактор и что уберёт одна константа

Администратор по умолчанию может сохранить правки в файлах темы или плагина прямо в браузере. Константа DISALLOW_FILE_EDIT прячет пункты «Редактор» в меню; по developer.wordpress.org это как снятие прав edit_themes и edit_plugins для правки через панель. Фронт сайта и форма заявки не страдают.

Из Hardening Guide: даже с константой вредоносный файл могут загрузить иначе — через уязвимый плагин или слабый FTP. Мера полезна, но не заменяет обновления и двухфакторную защиту WordPress.

Найдите пункт «Редактор» до отключения: классическая тема и блочная

Чеклист-блокнот на столе: Найдите пункт

Типичная ошибка — искать редактор только в «Внешний вид». В классической теме пункты такие: «Внешний вид» → «Редактор тем» и «Плагины» → «Редактор плагинов». В блочной теме оба редактора лежат в «Инструменты» — это актуальная раскладка меню по handbook Editing Files (обновлён в июле 2025). Если вы продвигаете сайт статьями и редко заходите в админку, один раз отметьте, где был «Редактор», чтобы после правки конфига сразу увидеть разницу.

Запишите путь к меню до правки wp-config — после define пункты должны исчезнуть. Для проверки без SSH достаточно зайти под админом и пройтись по боковому меню: исчезновение пункта важнее любых галочек в настройках плагинов.

Сделайте бэкап и вставьте define в wp-config.php по шагам

Предметы-факты на столе: Сделайте бэкап и вставьте define в wp-config.php по шагам

В реальном проекте безопаснее сначала скопировать файл, потом менять одну строку. Workflow: бэкап → открыть wp-config → вставить define → сохранить → проверить фронт сайта → проверить админку.

  1. Шаг 1. Скачайте копию wp-config.php на компьютер или создайте дубликат на хостинге (имя вроде wp-config.php.bak). Подробнее про привычку бэкапа — в статье бэкап WordPress перед правками.
  2. Шаг 2. Откройте файл в редакторе хостинга или через FTP-клиент. Не трогайте блок с паролем базы данных и солью — ищите комментарий на английском That’s all, stop editing! Happy publishing.
  3. Шаг 3. Непосредственно над этим комментарием вставьте одну строку (скопируйте целиком, без лишних символов):

define( ‘DISALLOW_FILE_EDIT’, true );

  1. Шаг 4. Перед сохранением пройдите мини-чек: слово DISALLOW_FILE_EDIT без запятой внутри имени; кавычки вокруг DISALLOW_FILE_EDIT — обычные одинарные; значение true без кавычек; в конце строки точка с запятой; второй такой же define в файле нет.
  2. Шаг 5. Сохраните файл и откройте главную страницу сайта в новой вкладке. Если видите белый экран или текст ошибки — сразу верните файл из бэкапа, не экспериментируйте дальше.
  3. Шаг 6. Зайдите в админку: в «Внешний вид» / «Плагины» или в «Инструменты» (блочная тема) пункта «Редактор» больше нет.
  4. Шаг 7. Откройте «Плагины» → убедитесь, что кнопки «Обновить» на месте — это признак, что вы не включили жёсткий режим DISALLOW_FILE_MODS по ошибке.

На Хабре в примере кода бывает лишняя запятая в имени константы — PHP не падает, но защита не включается. Чек из шага 4 обязателен.

Сравните DISALLOW_FILE_EDIT и DISALLOW_FILE_MODS, чтобы не отрубить обновления

DISALLOW_FILE_MODS — более жёсткая настройка: она отключает установку и обновление плагинов и тем из админки и уже включает эффект редактора. Официальная справка wp-config прямо говорит, что обе константы вместе не нужны. Для владельца сайта услуг, который сам жмёт «Обновить» в «Консоль», обычно хватает только DISALLOW_FILE_EDIT. В реальном проекте путаница двух define — частая причина звонка «пропали обновления», хотя задача была лишь убрать опасный редактор.

Что проверяем DISALLOW_FILE_EDIT DISALLOW_FILE_MODS
Редактор тем/плагинов в админке Нет Нет
Установка плагинов из админки Да Нет
Обновление плагинов и тем из админки Да Нет
Обновление ядра из «Консоль → Обновления» Обычно да Часто нет (по обзорам вроде Digging Into WordPress, 2024)
Правки файлов по FTP/SFTP Да, если есть доступ Да, если есть доступ

Вердикт для новичка: начните с DISALLOW_FILE_EDIT. DISALLOW_FILE_MODS оставьте для сценария, когда обновления делает только разработчик через деплой, а в админке никто не должен ставить плагины «наугад».

Проверьте результат и откатите файл, если что-то пошло не так

Успех выглядит так: сайт открывается без ошибок; в wp-config одна строка define( ‘DISALLOW_FILE_EDIT’, true ); выше stop editing; редакторов в меню нет; обновления плагинов из админки доступны. Например, после сохранения конфига откройте любой устаревший плагин: если кнопка «Обновить» на месте, вы не включили DISALLOW_FILE_MODS по ошибке. Это понятный критерий «сработало» до того, как вы закроете вкладку хостинга.

Если «Редактор» остался: сбросьте кеш админки, ищите дубль define и плагины, возвращающие редактор. Jetpack напоминает: отключить только один из двух редакторов штатно нельзя.

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)

При белом экране верните бэкап wp-config одним файлом через FTP. Живой сайт — снова сверьте define с статьёй WordPress.org про wp-config.

Примите границы защиты и запланируйте следующие шаги

DISALLOW_FILE_EDIT не закрывает все дыры: нужны пароль, обновления и бэкап. Цепочка для сайта услуг: редактор убран → роли проверены → бэкап → лишние плагины сняты.

Плагин Security Hardener на ru.wordpress.org дублирует hardening, но добавляет ещё одно обновление. Сначала строка в wp-config; плагин — если хостинг не даёт править файл.

Правки дизайна после отключения — через дочернюю тему и FTP; соседний шаг кластера — убрать версию WordPress из кода.

Если некогда копаться в конфиге на боевом сайте, передайте задачу через раздел услуг (создание и сопровождение WordPress) или напишите через форму контактов в мессенджер. Ещё гайды по безопасности и SEO — в разделе статей; короткие ответы по ходу работ — в канале t.me/DikiiTelegram.

Материал проверен: Андрей Дикий (создаёт сайты и продвигает их статьями, SEO/GEO).
Источники и сверка: developer.wordpress.org (wp-config, Hardening Guide, Editing Files); ru.wordpress.org (editing wp-config.php, плагин Security Hardener); Jetpack — disable file editing; Digging Into WordPress (2024) про DISALLOW_FILE_MODS; Habr — типичная опечатка в define; GitHub WordPress core file.php и gist ko31 для сверки синтаксиса. Частотность запросов: Яндекс Вордстат, прогон 2026-10-02 (MCP недоступен, точные показы не верифицированы).

Частые вопросы

Чем DISALLOW_FILE_EDIT отличается от DISALLOW_FILE_MODS?

Первая константа убирает только редакторы файлов в админке. Вторая запрещает ставить и обновлять плагины и темы из панели и уже включает эффект редактора. Для самостоятельных обновлений из «Консоль» достаточно DISALLOW_FILE_EDIT.

Можно ли править тему после DISALLOW_FILE_EDIT?

Да, если у вас есть FTP или SFTP и вы знаете, какой файл менять. Из браузера в админке встроенный редактор недоступен — это и есть цель настройки.

Ломает ли константа обновления WordPress?

DISALLOW_FILE_EDIT не должна отключать обновление плагинов и тем из админки. Если кнопки «Обновить» пропали, проверьте, не добавили ли вы DISALLOW_FILE_MODS или плагин с жёстким hardening.

Нужен ли бэкап wp-config перед правкой?

Да. Одна синтаксическая ошибка в define выводит сайт в белый экран. Копия файла на диске или wp-config.php.bak на сервере — минимальная страховка на пять минут работы.

Что делать, если после правки белый экран?

Немедленно загрузите сохранённый бэкап wp-config поверх текущего файла. Не добавляйте новые строки, пока сайт снова не откроется. Затем вставьте define заново по чеку синтаксиса.

Нужен ли отдельный плагин, если строка уже в конфиге?

Нет. Официальная рекомендация — константа в wp-config. Плагин имеет смысл, если хостинг запрещает править конфиг, но тогда следите за обновлениями самого плагина безопасности.

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)
Новый маркетинг с искусственным интеллектом
Добавить комментарий