Temas personalizados(ТЗ 19 из 54)
Especificación: Catálogo de productos con CPT, taxonomías y filtrado AJAX
Temas personalizados7 шагов • +35 XP

Especificación: Catálogo de productos con CPT, taxonomías y filtrado AJAX

Desarrollo completo de un tema de catálogo: registro de tipos de contenido personalizados (CPT), taxonomías jerárquicas, modificación de la consulta principal con pre_get_posts, plantillas de archivo y filtrado AJAX con 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)

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

Necesitamos un sitio web de catálogo de maquinaria y equipos. El panel de administración debe tener una sección independiente de 'Equipos' con taxonomías personalizadas (Categorías, Marcas) y especificaciones técnicas, con filtrado inmediato en el frontend sin recargas de página.
Ключевые требования:
  • •Tipo de contenido personalizado 'equipment' con soporte completo para REST API, Gutenberg y reescritura de URLs
  • •Taxonomías personalizadas: 'equipment_category' (jerárquica) y 'equipment_brand' (no jerárquica)
  • •Plantilla de archivo con cuadrícula de tarjetas adaptativa y campos personalizados de especificaciones técnicas
  • •Filtrado AJAX / Fetch API inmediato por categoría, marca y rango de precio sin recargar la página
  • •Marcado estructurado Schema.org Product y BreadcrumbList en JSON-LD para optimización en motores de búsqueda
Ограничения проекта:
  • •Preservar URLs limpias para enlaces directos a categorías filtradas (amigables para SEO)
  • •Sin plugins pesados de filtrado (sin Search & Filter Pro ni FacetWP) — código nativo ligero
  • •Consultas a la base de datos optimizadas con WP_Query e índices adecuados
Критерии приёмки (KPI):
  • Tiempo de respuesta del filtrado AJAX < 200ms
  • Prueba de resultados enriquecidos de Google valida el 100% del marcado Product sin advertencias
  • Cero errores 404 tras actualizar las reglas de reescritura

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

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

1
Этап 1 из 7

Paso 1: Registro del CPT mediante register_post_type con reglas de reescritura

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

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

Registre el CPT 'equipment' en el gancho init. Configure supports (title, editor, thumbnail, excerpt), show_in_rest para editor de bloques, menu_icon y el slug de reescritura personalizado ('catalog/equipment').

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

Actualice las reglas de reescritura únicamente al activar el tema con flush_rewrite_rules(). Nunca invoque esta función en cada carga de página.

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

Новый раздел "Каталог" в админке с корректным ЧПУ /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

Paso 2: Registro de taxonomías: Categorías y Marcas

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

Paso 3: Modificación de la consulta principal con el gancho pre_get_posts

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

Paso 4: Plantilla de archivo archive-equipment.php y paginación

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

Paso 5: Filtrado AJAX / Fetch API en tiempo real con seguridad Nonce

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

Paso 6: Plantilla single-equipment.php y tabla de especificaciones

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

Paso 7: Datos estructurados Schema.org BreadcrumbList y Product

~30 минЛегкий

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

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

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

Интеграция