Головна/WordPress Fullstack/Блупринти/Кастомні теми/Розробка каталогу на CPT, таксономіях та AJAX-фільтрації
До карток розділу «Кастомні теми»
Кастомні теми(ТЗ 19 из 54)
ТЗ: Розробка каталогу на CPT, таксономіях та AJAX-фільтрації
Кастомні теми7 шагов • +35 XP

ТЗ: Розробка каталогу на CPT, таксономіях та AJAX-фільтрації

Повний цикл розробки теми-каталогу: реєстрація кастомного типу записів (CPT), ієрархічні таксономії, модифікація головного запиту через pre_get_posts, шаблони архівів та миттєва AJAX-фільтрація з захистом через Nonce.

~14 ч работыУровень: MiddlePHP 8.3/8.4register_post_typeregister_taxonomypre_get_postsarchive-{cpt}.phpsingle-{cpt}.phpAJAX / Fetch APISchema.org Breadcrumbs
+5 XP за шаг
Выполнено 0 из 7 шагов (0%)
Трудозатраты~14 рабочих часов
Фриланс вилка~$630 – $1,050 (€560 – €980)
Оценка веб-студии~$1,330 – $2,240 (€1260 – €2100)

ТЗ заказчика (исходный бриф):

Нам потрібен сайт-каталог спецтехніки та обладнання. В адмінці має бути окремий розділ 'Обладнання' з кастомними таксономіями (Категорії, Бренди) та технічними характеристиками, а на сайті — швидка фільтрація без перезавантаження сторінки.
Ключевые требования:
  • •Кастомний тип записів 'equipment' із підтримкою REST API, Gutenberg та правил перезапису ЧПУ
  • •Таксономії: 'equipment_category' (ієрархічна) та 'equipment_brand' (неієрархічна)
  • •Шаблон архіву з адаптивною сіткою карток та метаполями технічних характеристик
  • •Миттєва AJAX / Fetch API фільтрація за категоріями, брендами та ціною без перезавантаження
  • •Мікророзмітка Schema.org Product та BreadcrumbList у форматі JSON-LD для пошукової оптимізації
Ограничения проекта:
  • •Збереження чистих URL-адрес для прямих посилань на відфільтровані сторінки (SEO-friendly)
  • •Без важких плагінів фільтрації (Search & Filter Pro, FacetWP) — тільки нативний код
  • •Оптимізація запитів до бази даних через WP_Query та відповідні індекси
Критерии приёмки (KPI):
  • Час відповіді AJAX-фільтра < 200мс
  • Валідація Google Rich Results підтверджує 100% коректність розмітки Product
  • Нуль помилок 404 після скидання правил перезапису ЧПУ

Пошаговое практическое руководство по ТЗ

Подробный разбор архитектуры, код реализации и советы эксперта по каждому этапу:

1
Этап 1 из 7

Крок 1: Реєстрація CPT через register_post_type з правилами перезапису

~40 минСредний

Практическое руководство:

Зареєструйте тип запису 'equipment' на хуку init. Налаштуйте supports (title, editor, thumbnail, excerpt), show_in_rest для підтримки Gutenberg, menu_icon та кастомний rewrite slug ('catalog/equipment').

План и контрольные точки реализации:
1Зарегистрировать CPT на хуке init
2Задать ЧПУ has_archive => "catalog"
3Включить show_in_rest => true для поддержки Gutenberg и REST API
4Настроить однократный сброс ЧПУ на after_switch_theme
Важные технические нюансы и подводные камни:

Скидайте правила перезапису тільки під час активації теми через flush_rewrite_rules(). Ніколи не викликайте цю функцію на кожному завантаженні сторінки.

Ожидаемый артефакт этапа:

Новый раздел "Каталог" в админке с корректным ЧПУ /catalog/.

PHP
<?php
// inc/cpt.php - Регистрация типа записи оборудования
add_action('init', function (): void {
    $labels = [
        'name'               => 'Оборудование',
        'singular_name'      => 'Оборудование',
        'menu_name'          => 'Каталог',
        'add_new'            => 'Добавить позицию',
        'add_new_item'       => 'Добавление позиции оборудования',
        'edit_item'          => 'Редактировать позицию',
        'all_items'          => 'Все позиции',
        'search_items'       => 'Поиск по каталогу',
    ];

    register_post_type('equipment', [
        'labels'             => $labels,
        'public'             => true,
        'has_archive'        => 'catalog',
        'rewrite'            => ['slug' => 'catalog', 'with_front' => false],
        'menu_icon'          => 'dashicons-portfolio',
        'supports'           => ['title', 'editor', 'thumbnail', 'excerpt', 'custom-fields'],
        'show_in_rest'       => true,
    ]);
});

// Однократный сброс rewrite-правил при активации темы
add_action('after_switch_theme', function (): void {
    flush_rewrite_rules();
});
2
Этап 2 из 7

Крок 2: Реєстрація таксономій: Категорії та Бренди

~35 минСредний
3
Этап 3 из 7

Крок 3: Модифікація головного запиту через хук pre_get_posts

~30 минСредний
4
Этап 4 из 7

Крок 4: Шаблон архіву archive-equipment.php та пагінація

~45 минСредний
5
Этап 5 из 7

Крок 5: Реалізація миттєвої AJAX/Fetch API фільтрації з Nonce

~55 минСредний
6
Этап 6 из 7

Крок 6: Шаблон single-equipment.php та таблиця характеристик

~45 минСредний
7
Этап 7 из 7

Крок 7: Мікророзмітка Schema.org BreadcrumbList та Product

~30 минЛегкий

Типичные грабли на этом ТЗ

2 антипаттерна

Инструменты экосистемы Fullstack AI Lab для этого ТЗ

Интеграция