Как отключить автоматическое выполнение PHP кода в WordPress

В WordPress иногда возникает ситуация, когда вы хотите предотвратить автоматическое выполнение PHP кода, например, в пользовательских полях, виджетах или при отображении контента, чтобы избежать проблем с безопасностью или конфликтами. В этой статье подробно разберём, как отключить автоматическое выполнение PHP кода в WordPress, какие есть типичные случаи, и приведём примеры решений с кодом и плагинами.

Почему WordPress автоматически выполняет PHP код и когда это опасно

По умолчанию WordPress не выполняет PHP код, если он добавлен в контент постов или страниц через визуальный редактор. Однако в некоторых случаях, например, при использовании определённых плагинов, кастомных шорткодов или при выводе данных из метаполей напрямую через eval или неправильное использование функций, PHP код может быть выполнен автоматически. Это создает угрозу безопасности, особенно если код поступает от пользователей без проверки.

Типичные ситуации:

  • Использование плагинов, позволяющих вставлять PHP код в контент (например, Insert PHP)
  • Вывод PHP кода из произвольных полей без фильтрации
  • Неправильная обработка пользовательского ввода, ведущая к выполнению кода

Поэтому важно уметь отключать или фильтровать автоматическое выполнение кода там, где это нежелательно.

Как отключить выполнение PHP кода в пользовательских полях и виджетах

Если у вас есть пользовательские поля или виджеты, которые могут содержать PHP код, и вы хотите вывести их содержимое как текст, без выполнения, можно использовать фильтрацию специальными функциями WordPress.

Например, если вы используете функцию get_post_meta() для вывода значения метаполя, не применяйте к этому значению eval() и не используйте функцию do_shortcode() без необходимости.

Пример: безопасный вывод пользовательского поля без выполнения PHP

function wpbloger_safe_output_meta($post_id, $meta_key) {
    $value = get_post_meta($post_id, $meta_key, true);
    // Экранируем вывод, чтобы PHP код не выполнялся
    return esc_html($value);
}

// Использование в шаблоне
echo wpbloger_safe_output_meta(get_the_ID(), 'custom_php_field');

В этом примере мы выводим содержимое метаполя как простой текст, что исключает выполнение PHP кода.

Использование плагинов для контроля выполнения PHP кода

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

Рассмотрим плагин Clearfy Pro. Он позволяет оптимизировать безопасность сайта, в том числе отключать выполнение PHP кода в комментариях и других местах.

Для установки и настройки Clearfy Pro:

  • Установите и активируйте плагин через административную панель WordPress.
  • В меню плагина выберите настройки безопасности.
  • Активируйте опцию «Отключить выполнение PHP в пользовательском контенте».

Это простой способ повысить безопасность без необходимости писать код.

Как запретить выполнение PHP кода в шорткодах

Иногда PHP код вставляют через шорткоды. Если у вас есть шорткод, который потенциально выполняет PHP код, и вы хотите отключить это, можно переопределить обработчик шорткода.

Пример: переопределение шорткода для отключения PHP

function wpbloger_disable_php_shortcode($atts, $content = null) {
    // Просто выводим содержимое без выполнения
    return esc_html($content);
}

// Предположим, шорткод [php] выполняет код, отключим его
remove_shortcode('php');
add_shortcode('php', 'wpbloger_disable_php_shortcode');

Таким образом, даже если в шорткоде будет PHP код, он не выполнится, а отобразится как текст.

Защита от нежелательного выполнения PHP кода в редакторе Gutenberg

В редакторе Gutenberg PHP код не выполняется по умолчанию, однако при использовании блоков с пользовательским HTML или через плагины может возникнуть риск.

Чтобы избежать выполнения PHP кода из блоков «Пользовательский HTML», рекомендуем отключить возможность вставлять PHP или использовать плагин WPRemark, который позволяет фильтровать и контролировать контент, включая кодовые фрагменты.

Общая рекомендация по безопасности

Не используйте функции eval(), create_function() и подобные для выполнения кода из данных пользователя без строгой проверки. Всегда фильтруйте и экранируйте вывод, используйте функции WordPress для безопасного отображения контента.

Если требуется выполнять PHP код, делайте это только в доверенных местах, например, в шаблонах темы или в плагинах, а не в пользовательском контенте.

Итог: практические шаги для отключения автоматического выполнения PHP кода

  1. Проверяйте, не используются ли плагины, которые автоматически выполняют PHP в контенте, и отключайте их при необходимости.
  2. Используйте функции экранирования: esc_html(), esc_attr() для вывода пользовательских данных.
  3. Переопределяйте или удаляйте шорткоды, которые выполняют PHP.
  4. Используйте плагины безопасности, такие как Clearfy Pro или WPRemark, для дополнительной защиты.
  5. Не давайте права редактирования PHP кода пользователям с низкой доверенностью.

Следуя этим рекомендациям, вы сможете эффективно контролировать выполнение PHP кода на своём сайте WordPress, обезопасить его и избежать непредвиденных ошибок.

Как автоматически удалять неиспользуемые медиа файлы в WordPress
04.03.2026
Автоматическое удаление спама в комментариях WordPress
15.12.2025
Как создать собственный шорткод в WordPress
02.11.2025
Как запретить отображение отзывов по ссылке в WordPress
16.02.2026
Удаление пустых терминов в WordPress: как очистить таксономии от неиспользуемых категорий и меток
05.02.2026