PHP в WordPress ломается чаще всего не в ядре, а в вашей теме
В теме PHP отвечает не только за шаблоны, но и за логику вывода, условия, циклы и сбор данных. Ошибка в одном `if` или `foreach` может уронить весь шаблон, поэтому главный принцип — не смешивать бизнес-логику и разметку без необходимости.
Проверьте базовые места:
— все функции и хуки объявлены с уникальными именами;
— перед `foreach` есть проверка на массив;
— значения из полей и мета проходят экранирование;
— запросы через `WP_Query` всегда завершаются `wp_reset_postdata()`;
— тяжелые вычисления не стоят внутри шаблонных файлов.
Частая проблема — прямой вывод данных без подготовки. Если вставить в тему сырой текст из формы, URL или HTML из метаполя, получите и баги, и уязвимости. Для вывода используйте `esc_html()`, `esc_attr()`, `wp_kses_post()` — в зависимости от типа данных. Для входящих данных, наоборот, применяйте санитизацию до сохранения.
Еще одна ошибка — писать код так, будто тема живет одна. В WordPress рядом с ней работают плагины, фильтры, виджеты и сторонние поля. Поэтому любой шаблонный кусок должен переживать пустые значения, отключенный плагин и неожиданный тип данных.
Держите правило: PHP в теме должен быть коротким, предсказуемым и безопасным. Чем меньше логики в шаблоне, тем проще его поддерживать и тем меньше шансов словить поломку на ровном месте.
Разработка тем WordPress
@wp_dev_deep_dive_ww
PHP в WordPress ломается чаще всего не в ядре, а в вашей теме
Этот пост опубликован в Telegram-канале Разработка тем WordPress. Подписаться можно по ссылке: @wp_dev_deep_dive_ww.