Files
tangente-bloques-en-transicion/bloques-transicion/includes/class-post-types.php
T
Jose Ibáñez 26d7f11378 Plugins bloques
2026-02-13 13:13:06 +01:00

193 lines
11 KiB
PHP

<?php
/**
* Registro de Custom Post Types
*
* @package Bloques_Transicion
*/
if (!defined('ABSPATH')) {
exit;
}
class Bloques_Post_Types
{
/**
* Registrar todos los CPTs
*/
public static function register()
{
self::register_actuacion();
self::register_recurso();
self::register_evento();
}
/**
* CPT: Actuaciones
*/
private static function register_actuacion()
{
$labels = [
'name' => _x('Actuaciones', 'Post type general name', 'bloques-transicion'),
'singular_name' => _x('Actuación', 'Post type singular name', 'bloques-transicion'),
'menu_name' => _x('Actuaciones', 'Admin Menu text', 'bloques-transicion'),
'name_admin_bar' => _x('Actuación', 'Add New on Toolbar', 'bloques-transicion'),
'add_new' => __('Añadir nueva', 'bloques-transicion'),
'add_new_item' => __('Añadir nueva Actuación', 'bloques-transicion'),
'new_item' => __('Nueva Actuación', 'bloques-transicion'),
'edit_item' => __('Editar Actuación', 'bloques-transicion'),
'view_item' => __('Ver Actuación', 'bloques-transicion'),
'all_items' => __('Todas las Actuaciones', 'bloques-transicion'),
'search_items' => __('Buscar Actuaciones', 'bloques-transicion'),
'parent_item_colon' => __('Actuación padre:', 'bloques-transicion'),
'not_found' => __('No se encontraron actuaciones.', 'bloques-transicion'),
'not_found_in_trash' => __('No hay actuaciones en la papelera.', 'bloques-transicion'),
'featured_image' => _x('Imagen destacada', 'Overrides the "Featured Image" phrase', 'bloques-transicion'),
'set_featured_image' => _x('Establecer imagen destacada', 'Overrides the "Set featured image" phrase', 'bloques-transicion'),
'remove_featured_image' => _x('Eliminar imagen destacada', 'Overrides the "Remove featured image" phrase', 'bloques-transicion'),
'use_featured_image' => _x('Usar como imagen destacada', 'Overrides the "Use as featured image" phrase', 'bloques-transicion'),
'archives' => _x('Archivo de Actuaciones', 'The post type archive label', 'bloques-transicion'),
'insert_into_item' => _x('Insertar en actuación', 'Overrides the "Insert into post" phrase', 'bloques-transicion'),
'uploaded_to_this_item' => _x('Subido a esta actuación', 'Overrides the "Uploaded to this post" phrase', 'bloques-transicion'),
'filter_items_list' => _x('Filtrar lista de actuaciones', 'Screen reader text', 'bloques-transicion'),
'items_list_navigation' => _x('Navegación de actuaciones', 'Screen reader text', 'bloques-transicion'),
'items_list' => _x('Lista de actuaciones', 'Screen reader text', 'bloques-transicion'),
];
$args = [
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => false, // Lo añadimos manualmente al menú de Bloques
'query_var' => true,
'rewrite' => ['slug' => 'bloques-en-transicion/actuaciones', 'with_front' => false],
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'menu_icon' => 'dashicons-location-alt',
'supports' => ['title', 'editor', 'thumbnail', 'excerpt', 'revisions'],
'show_in_rest' => true,
'taxonomies' => ['iniciativa', 'linea_trabajo'],
];
register_post_type('actuacion', $args);
}
/**
* CPT: Recursos
*/
private static function register_recurso()
{
$labels = [
'name' => _x('Recursos', 'Post type general name', 'bloques-transicion'),
'singular_name' => _x('Recurso', 'Post type singular name', 'bloques-transicion'),
'menu_name' => _x('Recursos', 'Admin Menu text', 'bloques-transicion'),
'name_admin_bar' => _x('Recurso', 'Add New on Toolbar', 'bloques-transicion'),
'add_new' => __('Añadir nuevo', 'bloques-transicion'),
'add_new_item' => __('Añadir nuevo Recurso', 'bloques-transicion'),
'new_item' => __('Nuevo Recurso', 'bloques-transicion'),
'edit_item' => __('Editar Recurso', 'bloques-transicion'),
'view_item' => __('Ver Recurso', 'bloques-transicion'),
'all_items' => __('Todos los Recursos', 'bloques-transicion'),
'search_items' => __('Buscar Recursos', 'bloques-transicion'),
'parent_item_colon' => __('Recurso padre:', 'bloques-transicion'),
'not_found' => __('No se encontraron recursos.', 'bloques-transicion'),
'not_found_in_trash' => __('No hay recursos en la papelera.', 'bloques-transicion'),
'featured_image' => _x('Imagen del recurso', 'Overrides the "Featured Image" phrase', 'bloques-transicion'),
'set_featured_image' => _x('Establecer imagen', 'Overrides the "Set featured image" phrase', 'bloques-transicion'),
'remove_featured_image' => _x('Eliminar imagen', 'Overrides the "Remove featured image" phrase', 'bloques-transicion'),
'use_featured_image' => _x('Usar como imagen', 'Overrides the "Use as featured image" phrase', 'bloques-transicion'),
'archives' => _x('Archivo de Recursos', 'The post type archive label', 'bloques-transicion'),
'insert_into_item' => _x('Insertar en recurso', 'Overrides the "Insert into post" phrase', 'bloques-transicion'),
'uploaded_to_this_item' => _x('Subido a este recurso', 'Overrides the "Uploaded to this post" phrase', 'bloques-transicion'),
'filter_items_list' => _x('Filtrar lista de recursos', 'Screen reader text', 'bloques-transicion'),
'items_list_navigation' => _x('Navegación de recursos', 'Screen reader text', 'bloques-transicion'),
'items_list' => _x('Lista de recursos', 'Screen reader text', 'bloques-transicion'),
];
$args = [
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => false,
'query_var' => true,
'rewrite' => ['slug' => 'bloques-en-transicion/recursos', 'with_front' => false],
'capability_type' => 'post',
'has_archive' => false, // Desactivado para usar la página de Divi
'hierarchical' => false,
'menu_position' => null,
'menu_icon' => 'dashicons-media-document',
'supports' => ['title', 'editor', 'thumbnail', 'excerpt', 'revisions'],
'show_in_rest' => true,
'taxonomies' => ['iniciativa', 'linea_trabajo'],
];
register_post_type('recurso_bloques', $args);
}
/**
* CPT: Eventos
*/
private static function register_evento()
{
$labels = [
'name' => _x('Eventos', 'Post type general name', 'bloques-transicion'),
'singular_name' => _x('Evento', 'Post type singular name', 'bloques-transicion'),
'menu_name' => _x('Eventos', 'Admin Menu text', 'bloques-transicion'),
'name_admin_bar' => _x('Evento', 'Add New on Toolbar', 'bloques-transicion'),
'add_new' => __('Añadir nuevo', 'bloques-transicion'),
'add_new_item' => __('Añadir nuevo Evento', 'bloques-transicion'),
'new_item' => __('Nuevo Evento', 'bloques-transicion'),
'edit_item' => __('Editar Evento', 'bloques-transicion'),
'view_item' => __('Ver Evento', 'bloques-transicion'),
'all_items' => __('Todos los Eventos', 'bloques-transicion'),
'search_items' => __('Buscar Eventos', 'bloques-transicion'),
'parent_item_colon' => __('Evento padre:', 'bloques-transicion'),
'not_found' => __('No se encontraron eventos.', 'bloques-transicion'),
'not_found_in_trash' => __('No hay eventos en la papelera.', 'bloques-transicion'),
'featured_image' => _x('Imagen del evento', 'Overrides the "Featured Image" phrase', 'bloques-transicion'),
'set_featured_image' => _x('Establecer imagen', 'Overrides the "Set featured image" phrase', 'bloques-transicion'),
'remove_featured_image' => _x('Eliminar imagen', 'Overrides the "Remove featured image" phrase', 'bloques-transicion'),
'use_featured_image' => _x('Usar como imagen', 'Overrides the "Use as featured image" phrase', 'bloques-transicion'),
'archives' => _x('Archivo de Eventos', 'The post type archive label', 'bloques-transicion'),
'insert_into_item' => _x('Insertar en evento', 'Overrides the "Insert into post" phrase', 'bloques-transicion'),
'uploaded_to_this_item' => _x('Subido a este evento', 'Overrides the "Uploaded to this post" phrase', 'bloques-transicion'),
'filter_items_list' => _x('Filtrar lista de eventos', 'Screen reader text', 'bloques-transicion'),
'items_list_navigation' => _x('Navegación de eventos', 'Screen reader text', 'bloques-transicion'),
'items_list' => _x('Lista de eventos', 'Screen reader text', 'bloques-transicion'),
];
$args = [
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => false,
'query_var' => true,
'rewrite' => ['slug' => 'bloques-en-transicion/eventos', 'with_front' => false],
'capability_type' => 'post',
'has_archive' => false, // Desactivado para usar la página de Divi
'hierarchical' => false,
'menu_position' => null,
'menu_icon' => 'dashicons-calendar-alt',
'supports' => ['title', 'editor', 'thumbnail', 'excerpt', 'revisions'],
'show_in_rest' => true,
'taxonomies' => ['iniciativa', 'linea_trabajo', 'tipo_evento'],
];
register_post_type('evento_bloques', $args);
}
/**
* Obtener todos los CPTs del plugin
*/
public static function get_post_types()
{
return ['actuacion', 'recurso_bloques', 'evento_bloques'];
}
}