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.