Registrar contenido estructurado mediante programación
Elige un único responsable para un tipo de contenido, una taxonomía o un esquema de campos.
Modelo propiedad del editor
Créalo en Settings → POM Theme → Content model cuando el propietario del sitio deba gestionar el modelo a través de POM. POM lo expone entonces al editor, a las plantillas, a los selectores del constructor y a los sistemas relacionados.
Modelo propiedad del plugin
Usa las API públicas de WordPress cuando la integración sea la que posea el esquema:
add_action(
'init',
static function (): void {
register_post_type(
'resource',
array(
'label' => __( 'Resources', 'my-plugin' ),
'public' => true,
'show_in_rest' => true,
'supports' => array( 'title', 'editor', 'thumbnail' ),
)
);
}
);
Registra las taxonomías con register_taxonomy() y los metadatos con register_post_meta(), incluyendo un esquema REST apropiado y un callback de autenticación cuando se expongan.
POM Theme detecta los tipos de contenido públicos de WordPress compatibles para los selectores. Un plugin no debe duplicar su modelo en los ajustes guardados de POM ni escribir datos de repetidor del framework.
Únete al catálogo de modelos de contenido de POM
Registra primero el tipo de contenido en WordPress. Si además debe participar en el
catálogo exclusivo de POM que utilizan los ajustes de plantillas y de modelos de
contenido, añade su definición normalizada con pom_theme_formatted_custom_post_types:
add_filter(
'pom_theme_formatted_custom_post_types',
static function (array $post_types): array {
$post_types['resource'] = array(
'registration_owner' => 'plugin',
'slug' => 'resource',
'singular' => __('Resource', 'my-plugin'),
'plural' => __('Resources', 'my-plugin'),
'publicly_queryable' => 'yes',
'has_archive' => 'yes',
'enable_content' => 'yes',
'enable_thumbnail' => 'yes',
'single_layout' => 'simple',
);
return $post_types;
}
);
El filtro no llama a register_post_type() ni otorga capacidades.
Establece registration_owner en plugin para que POM Theme no registre el mismo
slug desde una fila guardada obsoleta ni altere el tipo de contenido a través de sus ajustes
de enlaces permanentes. El plugin sigue siendo el único responsable del registro, de las reglas de reescritura,
de la exposición REST, de los permisos, del almacenamiento, de la migración y de la eliminación. Usa una clave
de array y un slug estables, devuelve el array completo y no modifiques
el repetidor guardado del framework de POM.
Lista de comprobación de compatibilidad
- Slugs/claves únicos y estables; no reutilices nunca un identificador reservado o del núcleo.
- Comportamiento de reescritura/consulta pública decidido antes del contenido en producción.
- Capacidades explícitas y decisiones de
map_meta_cap. - Exposición REST solo para los campos que deban ser públicos/editables.
- Callbacks de saneamiento y autorización para los metadatos.
- Estrategia de plantilla de archivo/individual y valores vacíos.
- Indexación de búsqueda facetada solo para valores estructurados cortos.
- Comportamiento de migración y desactivación que no elimine contenido de usuario de forma inesperada.