pom_get_template_schema: inspeccionar el esquema de una plantilla

Qué forma adopta un tipo de plantilla: sus campos obligatorios, sus opciones de diseño, cómo se asigna y qué claves de ajustes llevan esa asignación.

Argumentos

Argumento Obligatorio Significado
type Sí archive, single o feed

Un tipo no reconocido recurre a single. Comprueba el type en la respuesta.

Permisos

mcp:read y pom_theme:read, con edit_theme_options.

Común a los tres

Todos los tipos requieren template_name y template_html, informan de cuántas etiquetas de combinación tiene su contexto y nombran pom_validate_template_markup como su herramienta de validación. Cada uno también apunta a una URI de recurso que contiene orientación más amplia.

Plantillas de archivo

Para páginas de listado.

  • ID de diseño: left, right, full-width, contained-width, both.
  • Contenido obligatorio: archive_results — el bucle tiene que estar en algún sitio.
  • Asignación: mediante pom_post_archive_sidebar_layout para el archivo nativo de entradas, o pom_{post_type}_archive_sidebar_layout para un tipo de contenido personalizado.

El contenido obligatorio es lo que hay que notar. Una plantilla de archivo sin {{archive_results}} muestra una página sin resultados, lo que parece un problema de datos y es un problema de plantilla. El validador avisa al respecto.

Plantillas individuales

Para elementos individuales.

  • ID de diseño: simple, vc.
  • Asignación: pom_post_single_layout para entradas nativas, o el single_layout del modelo de contenido para un tipo de contenido personalizado.

El diseño vc significa que la plantilla participa en el contenido del constructor; simple no lo hace. Elegir mal produce una plantilla que o bien ignora el constructor o bien lo espera donde no lo hay.

Plantillas de elementos del feed

Para el elemento repetido dentro del bucle de resultados de un archivo.

  • Asignación: pom_post_archive_results_custom_layout, o el equivalente por tipo de entrada.
  • Campo de diseño del contenedor: pom_{post_type}_archive_results_layout, que toma uno de default, default_masonry, only_image, horizontal_list, horizontal_list_thumbnail, horizontal_list_big, horizontal_list_creative o no_wrapper.

Las plantillas de feed tienen un detalle que importa: informan de generated_files de template_php y template_php_hash, y el esquema declara claramente que la fuente editable es template_html, mientras que esos dos son artefactos generados que los agentes no deberían editar.

Editar un artefacto generado produce un cambio que se sobrescribe en la siguiente regeneración, o una discrepancia de hash. Escribe template_html y deja que el resto siga.

La asignación son dos decisiones

Una plantilla de feed necesita tanto la plantilla en sí como el diseño de contenedor que rodea a los elementos repetidos. Son ajustes separados, y una plantilla correcta dentro del contenedor equivocado produce un elemento correcto mostrado en una disposición inesperada.

Lee ambos antes de asignar.

Las claves del modelo de contenido

Cada tipo enumera content_model_keys — las claves de ajustes que llevan su asignación, como archive_template_id y archive_layout.

Estas importan cuando un tipo de contenido personalizado se configura mediante pom_theme_configure_content_model en lugar de asignarse individualmente. Conocer los nombres de las claves permite que un cliente establezca la asignación como parte de la creación del tipo de entrada, en una sola operación coherente en lugar de varias.

Cómo usarlo bien

Obtén el esquema de plantilla de archive y dime qué requiere.

¿Qué ID de diseño puede usar una plantilla individual, y cómo se asigna?

Antes de construir:

Lee el esquema de la plantilla y las etiquetas de combinación disponibles para este contexto, compón el marcado, valídalo y muéstrame el resultado antes de escribir.

Qué no hace

  • No enumera las plantillas existentes. Eso es pom_theme_list_html_templates.
  • No valida el marcado. Eso es pom_validate_template_markup.
  • No asigna nada. Eso es pom_theme_assign_template.
  • No te dice qué plantilla está asignada actualmente. Eso es pom_theme_get_template_assignments.