Crea un listado filtrable dentro de una página

Este flujo de trabajo es para propietarios de sitios que crean directorios, portafolios u otros listados estructurados con POM Theme y un cliente MCP conectado. Funciona en una instalación remota de WordPress; el cliente solo necesita enviar JSON y marcado.

Habilita MCP y Allow POM Theme writes en POM AI → Settings → MCP. La creación de contenido y metadatos también requiere Allow content writes. El usuario conectado necesita las capacidades de edición de WordPress pertinentes y manage_options para la configuración del tema. Las concesiones OAuth deben cubrir cada operación utilizada.

  1. Usa pom_theme_configure_content_model para definir los tipos de contenido, taxonomías, campos personalizados y plantillas de feed/individual/archivo. Usa valores repeater_identifier estables. Obtén una vista previa primero, aplica y luego actualiza la detección.
  2. Crea contenido con pom_site_save_content, términos con wp_create_term, asignaciones de términos con wp_add_post_terms y valores con wp_update_post_meta. Definir un campo no lo rellena.
  3. Lee pom_site_get_listing_catalog. Llama a pom_site_save_query con query_id, name, post_types y, opcionalmente, per_page, orderby, order. Obtén una vista previa y luego aplica con la revisión devuelta. Esto crea o reemplaza una consulta y conserva las demás consultas.
  4. Activa el grupo faceted_search con pom_theme_patch_settings y luego actualiza. El catálogo de listados ahora incluye el contexto de la consulta guardada, llamado ctx_query_<query_id>, y los tipos de facetas registrados.
  5. Usa pom_site_save_facets con ese context_id y una matriz facets. Reemplaza los filtros en ese contexto y conserva los demás contextos. Obtén una vista previa primero y aplica en la revisión devuelta.
  6. Llama a pom_site_reindex_facets para iniciar el indexador nativo. Inspecciona su resultado. Si done es false, las llamadas posteriores avanzan un lote; los trabajos programados de WordPress también pueden avanzarlo. Detente cuando done sea true. Iniciar otra llamada después de la finalización comienza un nuevo índice.
  7. Llama a pom_site_build_listing con query_id, feed_template, faceted: true y, opcionalmente, columns. Inserta el content devuelto en una página usando pom_site_save_content.
  8. Genera los recursos del tema, borra la POM Cache del sitio si está disponible y comprueba la página en el navegador. Verifica los resultados iniciales, un filtro, la búsqueda por texto, la ausencia de resultados, el restablecimiento, la paginación, los enlaces a elementos individuales y los controles móviles.

Las filas de tipos de entrada del modelo de contenido usan single_template_id, feed_template_id y archive_template_id para los identificadores de plantillas existentes, o sus equivalentes _key para las plantillas creadas en la misma solicitud. Lee pom_get_template_schema y pom://theme/content-model-guide para conocer las propiedades admitidas exactas. El argumento independiente feed_template del constructor de listados contiene el identificador de la plantilla de feed seleccionada.

Guardar una hoja de estilos personalizada con nombre la pone a disposición para su asignación; no la aplica en todas partes. Asígnala a través de css_stylesheets de la plantilla, o usa pom_theme_update_global_css para CSS global del sitio. Activa el grupo Custom CSS y genera los recursos después de guardar.

Entradas de consulta

Las consultas creadas aquí seleccionan contenido publicado de tipos de entrada públicos registrados. per_page es 1–100; el orden admite fecha, título, fecha de modificación u orden de menú, ascendente o descendente. No se aceptan SQL arbitrario ni cláusulas de consulta. Reemplazar una consulta reemplaza sus parámetros, incluidos los parámetros anteriores configurados en otro lugar; revisa la vista previa con atención.

Entradas de filtro

Cada faceta requiere id, label y un type registrado. Una faceta de búsqueda no necesita origen. Otras facetas necesitan source con type y key. Las familias de origen admitidas son tax, meta, post y post_type. Las taxonomías públicas deben existir ya. Los metadatos protegidos y sensibles se rechazan. Usa indexed_meta_keys para los metadatos que necesita una plantilla de resultados. La normalización POM nativa sigue siendo la autoridad para las opciones ui y el comportamiento de las facetas.

{
  "context_id": "ctx_query_spaces",
  "facets": [
    {"id": "space_search", "label": "Search", "type": "search"},
    {"id": "space_type", "label": "Type", "type": "checkboxes",
     "source": {"type": "tax", "key": "space_type"}}
  ],
  "dry_run": true
}

El constructor devuelve el shortcode web_listings existente, la plantilla de feed seleccionada, los controles de faceta coincidentes, las selecciones, los recuentos, el paginador y el restablecimiento. columns acepta 1, 2, 3, 4 o 6, con los valores predeterminados responsivos del tema. Genera código fuente; no guarda una página. La salida facetada omite la casilla de paginación ordinaria para que el paginador de facetas controle la paginación; la salida no facetada habilita la paginación ordinaria. Valida el código fuente devuelto dentro de su diseño final del constructor antes de guardar la página.

Si los resultados están vacíos, verifica que los elementos estén publicados, que la consulta seleccione los tipos de entrada correctos, que el contexto esté habilitado y que la indexación haya finalizado. Si los campos personalizados están en blanco después de filtrar, comprueba sus declaraciones de metadatos indexados. En caso de conflictos, vuelve a leer y a obtener una vista previa antes de aplicar.

Relacionado: Typed settings, site plans, template assignment.