pom_validate_template_markup: validar el marcado de plantillas

La última comprobación antes de guardar una plantilla. Valida el HTML, cada etiqueta de combinación, la estructura condicional y cualquier shortcode incrustado.

Las plantillas se aplican a muchas páginas a la vez, lo que convierte esta validación en la más valiosa de todo el conjunto.

Argumentos

Argumento Obligatorio Significado
type Sí archive, single o feed
markup Sí El HTML completo de la plantilla propuesta

El tipo decide contra qué catálogo de etiquetas de combinación se comprueba el marcado, así que pasar el incorrecto produce errores para etiquetas que son perfectamente válidas en otro contexto.

Permisos

mcp:read y pom_theme:read, con edit_theme_options.

Solo lectura. Valida lo que le pases; nunca guarda una plantilla.

Qué devuelve

Campo Significado
valid False cuando se encontró algún error
issues Cada uno con gravedad, ruta, mensaje y sugerencia
summary Etiquetas de combinación encontradas, errores, advertencias
next_steps Qué hacer a continuación

Los problemas de etiquetas de combinación llevan una ruta con la forma merge_tag@desplazamiento, que localiza el token en el marcado.

Errores

Etiquetas PHP. Nunca permitidas en las plantillas HTML.

<script> en línea. Selecciona los scripts existentes con js_scripts de pom_theme_get_script_catalog; crear JavaScript no está disponible.

Marcado vacío.

Una etiqueta de combinación desconocida, que indica el contexto que se va a comprobar. Es un error y no una advertencia, porque una etiqueta no válida no se muestra en ninguna de las páginas que cubre la plantilla: silenciosa y multiplicada.

Un token de etiqueta de combinación vacío, es decir, {{}}.

Condicionales rotos:

  • {{else}} fuera de un bloque {{if}};
  • {{/if}} que cierra un bloque que nunca se abrió;
  • un {{if}} que quedó sin cerrar.

Cualquier error del validador del constructor, ya que el marcado de las plantillas puede contener shortcodes. El anidamiento ilegal y las etiquetas de script en el contenido de shortcodes incrustados también aparecen aquí.

Advertencias

<style> en línea, con la sugerencia de usar el campo de activo CSS de la plantilla o los atributos del shortcode.

{{if}} sin ambos meta y value, sugiriendo la forma {{if meta="meta-key" value="not_empty"}}.

Plantillas de archivo sin {{archive_results}}, lo que produce una página de listado sin resultados.

Plantillas de archivo con más de un {{archive_results}}, a menos que los bucles duplicados sean intencionados.

La comprobación de archivo es la útil

Una plantilla de archivo a la que le falta su bucle de resultados muestra una página que parece un problema de datos (un listado vacío) cuando en realidad es un problema de la plantilla. Es fácil de producir al componer el marcado sección por sección y nunca añadir el bucle.

Dos bucles es el error contrario, normalmente por copiar un bloque, y muestra cada resultado dos veces.

Los condicionales se rastrean correctamente

El validador mantiene una pila mientras lee los tokens, de modo que detecta los bloques desequilibrados dondequiera que ocurran e informa de la posición del token que causa el problema.

Eso significa que una plantilla con varios condicionales anidados obtiene una respuesta precisa en lugar de una queja general, que es lo que hace que corregirla sea rápido.

Cómo usarlo bien

Valida esta plantilla de archivo y muéstrame cada problema con su posición. No guardes nada.

Cuando falla:

Corrige solo los errores y valida de nuevo.

Antes de que una plantilla se acerque siquiera a una asignación:

Valida el marcado y luego muéstrame las asignaciones de plantilla actuales antes de cambiarlas.

La validación no es verificación

Pasar la validación significa que el marcado está bien formado, que las etiquetas de combinación existen, que los condicionales están equilibrados y que los shortcodes son válidos.

No significa que la plantilla se muestre bien. Después de guardarla y asignarla, comprueba:

  • una entrada con y sin imagen destacada;
  • un título muy largo y otro muy corto;
  • un archivo con un resultado y con ninguno;
  • la primera página y una paginada;
  • el ancho de móvil.

Consulta Crear y asignar plantillas POM Theme.

Plantillas de feed

Valida template_html. Los template_php y template_php_hash generados son artefactos, no código fuente editable; consulta pom_get_template_schema.