MVP на WordPress: ванильный подход для тех, кто хочет запуститься вчера
Знаете, что общего между успешным стартапом и табуреткой на трёх ножках? Оба должны держаться на минимально необходимом наборе деталей. Когда ко мне приходят клиенты с идеей «супер-пупер веб-сервиса», я всегда задаю один вопрос: «Что из этого можно выкинуть, чтобы оно всё ещё решало главную проблему пользователя?». Это и есть MVP — минимально жизнеспособный продукт. И сегодня я расскажу, как собрать его на WordPress, используя только ванильный PHP и JS, без того чтобы превращать сайт в зоопарк из 50 плагинов.
Почему WordPress, а не Laravel или React?
Да, я знаю, что модно сейчас пилить всё на Next.js или SPA. Но если у вас нет команды из пяти сеньоров и бюджета Netflix, WordPress — ваш бро. Он даёт готовую админку, управление пользователями и базу данных. А главное — вы можете писать на нём как угодно, хоть на чистом PHP, игнорируя встроенную магию. Это идеальный фундамент для MVP: быстро, дёшево и сердито.
Подготовка: минимальный джентльменский набор
Вам понадобится локальный сервер (OpenServer, MAMP или любой другой), свежая копия WordPress и текстовый редактор. Всё. Никаких Elementor, ACF или WooCommerce. Мы пишем сами. Для начала создаём пустую тему с одним файлом style.css и index.php. Да, это будет некрасиво, но это MVP — красота подождёт.
Архитектура: три слоя вместо зоопарка плагинов
Чтобы не утонуть в коде, я предлагаю разбить логику на три простых слоя: модель (работа с данными), контроллер (обработка запросов) и представление (шаблоны). Звучит как MVC? Ну да, только без фреймворка. Всё на ванильном PHP и JS.
Слой данных: кастомные типы записей и свои таблицы
Не лезьте в стандартные «Записи» и «Страницы». Создайте свой custom post type через functions.php. Например, «Проекты» или «Задачи». Если нужно хранить сложные данные — создайте отдельную таблицу в базе через $wpdb. Это даст вам гибкость и скорость, без тормозов от ACF. Примерно так:
add_action('init', function() { register_post_type('project'); });И готово. Дальше добавляем метабоксы своими руками через пару строк кода.
Логика: ванильный PHP без хуков
Не пытайтесь обернуть всё в хуки и фильтры. Если вам нужно обработать форму — напишите свой скрипт в отдельном файле и подключите его через wp_ajax_. Это читаемо, прозрачно и легко отлаживается. Я часто делаю так: в template-parts/ кладу чистые PHP-файлы с логикой, а в шаблоне просто вызываю их через include. Никакой магии.
Фронтенд: когда JS не враг, а друг
Многие боятся использовать JavaScript в WordPress, потому что «там же jQuery». Плевать на jQuery. Берите ванильный ES6. Подключите свой скрипт через wp_enqueue_script и пишите на чистом JS. Для MVP этого хватит за глаза. Если нужно подгружать данные без перезагрузки — используйте fetch и REST API WordPress. Это просто, быстро и не требует изучения React.
Пример: динамическая фильтрация за 10 минут
Допустим, у вас есть список проектов. Вместо того чтобы ставить плагин фильтрации, напишите свой. На PHP выводите все проекты в сетку, а на клиенте вешаете обработчик на чекбоксы. При клике отправляете GET-запрос на /wp-json/wp/v2/project, получаете JSON и перерисовываете список. Всё. Плагин не нужен.
Оптимизация: почему меньше плагинов = быстрее запуск
Каждый плагин — это потенциальная дыра в безопасности и тормоз. Когда вы пишете сами, вы контролируете каждую строчку. Для MVP это критично: вам нужно быстро проверить гипотезу, а не чинить конфликты между плагинами. Используйте только то, что действительно нужно: сам WordPress, ваша тема и, возможно, один плагин для кэширования (например, WP Super Cache). Всё остальное — руками.
Что делать, когда MVP взлетит?
Если ваш проект начнёт приносить деньги и пользователи попросят новые фичи — вы не будете заложником плагинов. Вы сможете легко переписать любой функционал на полноценный фреймворк или даже перенести на отдельный бэкенд. Но на старте WordPress с ванильным кодом — это идеальный баланс между скоростью разработки и контролем. Не усложняйте. Запускайтесь.
Помните: цель MVP — не сделать идеально, а сделать работающе. WordPress даёт вам базу, а ванильный PHP и JS — свободу. Пользуйтесь этим, и ваш первый релиз не заставит себя ждать.