Тестовое задание для WordPress 6.x: CPT «Доктора» + архив с GET‑фильтрами и сортировками + демо‑генератор.
- Плагин
doctors-cpt:- CPT
doctors(/doctors/) - таксономии
specialization(иерархическая) иcity(неиерархическая) - мета‑поля:
experience_years,price_from,rating - фильтрация/сортировка архива через GET + пагинация с сохранением параметров
- генерация демо‑данных (Tools → Generate Doctors Demo)
- CPT
- Тема
doctors-theme:archive-doctors.php(сетка 9/страница)single-doctors.phptemplate-parts/doctor-card.php,template-parts/filters.php
cp .env.example .env
docker compose up -dОткрыть http://localhost:8080 и пройти стандартную установку WordPress.
Далее в админке:
- Активировать плагин Doctors CPT
- Активировать тему Doctors Theme
Админка → Tools → Generate Doctors Demo → кнопка «Создать 20 докторов».
- Архив:
/doctors/ - Пример single:
/doctors/ivan-ivanov/(после генерации)
Примеры фильтров:
/doctors/?specialization=hirurg/doctors/?city=moskva/doctors/?sort=rating_desc- Комбинация + пагинация:
/doctors/?specialization=hirurg&city=moskva&sort=price_asc&paged=2
Города обычно не требуют иерархии. В формате «тегов» проще назначать, фильтровать и поддерживать без лишней вложенности.
Это позволяет изменять main query архива:
- корректно работает пагинация
- меньше побочных эффектов, чем отдельный
WP_Queryв шаблоне - поведение ближе к стандартным архивам WP/Woo
По умолчанию мета‑поля реализованы нативно (metabox + save_post + register_post_meta). При желании можно вынести поля в ACF, но это не требуется для теста.