Plantillas de artículo individual
Una plantilla de artículo individual muestra el cuerpo del post actual o de un elemento de tipo de contenido personalizado de POM. Sus etiquetas de combinación usan los campos, medios y metadatos de ese elemento.
Autoría de la organización en Rank Math
Para el contenido escrito en nombre de la organización del sitio, activa Use organization as schema author en Settings → POM Theme → Templates → Blog → Post single. Para un tipo de contenido personalizado de POM, abre su pestaña en Templates y los ajustes individuales correspondientes.
Configura primero la organización en Rank Math. El ajuste está desactivado por defecto y solo se aplica al tipo de contenido seleccionado. Hace que el schema Article, BlogPosting y NewsArticle referencie como autor a la organización editora existente de Rank Math. Sin una organización editora que contenga un ID y un nombre, se conserva el autor existente.
Guarda, abre un elemento publicado e inspecciona su JSON-LD: el author del artículo debería referenciar el @id de la organización. Las cuentas de usuario de WordPress, las firmas visibles y el {{author_name}} no cambian. Mantén la opción desactivada para el contenido que deba identificar a un autor individual.
Condiciones
Los bloques condicionales inspeccionan un campo personalizado:
{{if meta="event_status" value="confirmed"}}
<p>Confirmed</p>
{{else}}
<p>Provisional</p>
{{/if}}
value |
Coincidencia |
|---|---|
| Un valor exacto | El campo guardado es igual a ese valor |
empty |
El campo no tiene valor |
not_empty |
El campo tiene un valor |
Las condiciones usan la misma sintaxis y comparaciones que las plantillas de feed. Pueden contener HTML, otras etiquetas de combinación, shortcodes, condiciones anidadas y una rama {{else}} opcional. Solo se muestra la rama seleccionada. Cierra cada condición con su propio {{/if}}.
{{if meta="event_status" value="confirmed"}}
{{if meta="venue" value="not_empty"}}
<p>{{meta name="venue" only_content="true"}}</p>
{{else}}
<p>Venue to be announced.</p>
{{/if}}
{{else}}
<p>Confirmation pending.</p>
{{/if}}
Las comparaciones exactas distinguen entre mayúsculas y minúsculas. Como en las plantillas de feed, empty también coincide con un campo ausente, cero (0 o "0"), false y un array vacío; not_empty coincide con valores que no están vacíos. Comprueba el resultado en elementos con campos rellenados y ausentes antes de publicar.
Campos principales del post
| Etiqueta de combinación | Atributos | Resultado |
|---|---|---|
{{post_id}} |
Ninguno | ID del post actual |
{{title}} |
Ninguno | Título |
{{content}} |
fallback_message |
Contenido completo o la alternativa suministrada |
{{excerpt}} |
limit |
Extracto de texto plano, acortado al límite de caracteres |
{{permalink}} |
Ninguno | Enlace permanente |
{{date}} |
Ninguno | Fecha de publicación |
{{modified}} |
Ninguno | Fecha de modificación |
{{author_name}} |
Ninguno | Nombre visible del autor |
{{posts_nav}} |
Ninguno | Navegación al post anterior/siguiente |
Ejemplos:
<h1>{{title}}</h1>
<p>{{excerpt limit="150"}}</p>
<div class="entry-content">
{{content fallback_message=%%No description is available.%%}}
</div>
{{posts_nav}}
Los shortcodes de contenido y alternativa se procesan. Un post protegido con contraseña muestra su formulario de contraseña en lugar de la alternativa.
Navegación de vuelta al listado
La navegación compartida de posts puede incluir un icono central que enlaza a una página de listado. En Settings → POM Theme → Templates, abre los ajustes individuales del tipo de contenido, busca Posts navigation y configura Posts navigation icon link. Usa directamente la URL de la página de listado publicada en lugar de una URL de archivo más antigua que redirija allí.
Con Polylang activo, un destino que resuelva a una página o post de WordPress sigue la traducción visible públicamente de ese elemento en el idioma actual. Por ejemplo, una única página de Proyectos configurada puede llevar a su equivalente en inglés o en español. Se conservan el resto de parámetros de consulta y fragmentos; los parámetros de objeto e idioma provienen del enlace permanente traducido. Las URL externas, los destinos no resueltos y los elementos sin una traducción visible públicamente mantienen la URL configurada.
Después de guardar, abre un elemento individual en cada idioma y sigue el icono central. Confirma que llega directamente al listado previsto y que permanece en ese idioma. Los enlaces al elemento anterior y siguiente siguen usando los ajustes de navegación existentes.
Imagen destacada
Devuelve el HTML completo de la imagen:
{{featured_image image_size="large"}}
Devuelve solo su URL:
<div class="hero" style="background-image:url('{{featured_image_url image_size="full"}}')"></div>
image_size acepta un tamaño de imagen registrado de WordPress. Estas etiquetas quedan vacías cuando no se puede resolver ninguna imagen destacada.
Imagen de campo personalizado
{{image_from_meta name="speaker_portrait"}}
name es la clave del campo personalizado que contiene el valor de la imagen. La etiqueta devuelve el HTML de la imagen cuando el valor puede resolverse.
Las dimensiones conocidas del adjunto se incluyen automáticamente como atributos numéricos width y height, incluidas las dimensiones recuperadas de archivos SVG locales. Establece cualquiera de las dos dimensiones en un entero positivo en píxeles para controlar el tamaño de la imagen; omite la otra o usa auto para preservar sus proporciones:
{{image_from_meta name="speaker_portrait" width="160" height="auto"}}
{{image_from_meta name="square_icon" width="40" height="40"}}
Con ambas dimensiones omitidas o establecidas en auto, se usan las dimensiones de origen. Un SVG con solo un viewBox necesita al menos una dimensión numérica para producir un par numérico completo. Las dimensiones no resolubles se omiten, y se ignoran los valores no válidos o unidades CSS como 40px. El HTML generado nunca contiene width="auto" ni height="auto". CSS puede sobrescribir las dimensiones de visualización; usa height: auto cuando cambies el ancho de una imagen proporcionalmente.
Las plantillas de feed y de artículo individual comparten las mismas reglas de dimensiones de imagen de campo personalizado y requisitos de SVG.
Galería
{{gallery
meta_name="event_gallery"
style="masonry"
image_size="large"
lightbox_click="yes"
}}
| Atributo | Propósito |
|---|---|
meta_name |
Clave del campo de galería obligatoria |
style |
Presentación de la galería, incluyendo grid, masonry, carrousel, carousel_2, full_screen o images_only |
image_size |
Tamaño de imagen registrado de WordPress |
lightbox_click |
Usa yes para abrir las imágenes en la presentación lightbox compatible |
images_only devuelve una serie sencilla de imágenes sin el contenedor de presentación de la galería.
Metadatos personalizados
{{meta name="venue"}}
{{meta name="start_date" type="date" only_content="true"}}
{{meta name="doors_open" type="time" prepend=%%Doors: %% icon="feather/clock"}}
| Atributo | Propósito |
|---|---|
name |
Clave del campo personalizado obligatoria |
type |
Formatea el valor como date, datetime o time |
only_content |
Usa true para omitir el contenedor de metadatos por defecto |
prepend |
Texto antes del valor |
append |
Texto después del valor |
icon |
Icono mostrado con la forma envuelta |
translatable |
Marca las etiquetas admitidas para su traducción |
Cuando se omite only_content="true", POM añade un contenedor de metadatos con clases basadas en la clave del campo.
Iconos y cadenas traducidas
{{icon family="feather" name="map-pin"}}
{{translatable_string text=%%Location%%}}
Usa %%...%% para etiquetas traducidas que contengan espacios o puntuación. Consulta Formato de los atributos de las etiquetas de combinación para etiquetas anidadas.
Ejemplo completo
<article class="profile">
<header class="profile-header">
{{featured_image image_size="medium_large"}}
<div>
<h1>{{title}}</h1>
{{if meta="role" value="not_empty"}}
<p>{{meta name="role" only_content="true"}}</p>
{{/if}}
</div>
</header>
<div class="profile-content">{{content}}</div>
{{if meta="photo_gallery" value="not_empty"}}
{{gallery meta_name="photo_gallery" style="grid" image_size="medium" lightbox_click="yes"}}
{{/if}}
{{posts_nav}}
</article>