Creación de Post Type Personalizado en WordPress

Clase 25 de 35Curso de WordPress Práctico

Resumen

¿Cómo personalizar un post type en WordPress?

El desarrollo de un sitio web en WordPress puede ser tanto un arte como una ciencia, y la posibilidad de personalizar y manejar los tipos de publicaciones (post types) es un elemento fundamental para proporcionar versatilidad y creatividad en la presentación del contenido. En este contexto, entender cómo crear y adaptar un post type personalizado se convierte en un conocimiento esencial para desarrolladores web.

¿Qué es un post type personalizado?

Los post types personalizados en WordPress permiten expandir la funcionalidad básica del sistema de gestión de contenido al crear tipos de contenido únicos, adaptados específicamente a las necesidades del proyecto. Mientras que los posts y las páginas son tipos de contenido predeterminados en WordPress, los desarrolladores pueden crear tipos de post adicionales, como "Productos", para organiza y mostrar de una manera distinta.

¿Cómo crear un post type personalizado?

Para dar vida a un post type personalizado, es esencial tener claro el esquema de funcionamiento de WordPress y entender algunos de sus componentes claves. El proceso básico es el siguiente:

  1. Crear la función:

    • En el archivo functions.php, define una nueva función.
    • Usa la función register_post_type() que requiere dos argumentos principales: el nombre singular de tu post type (por ejemplo, 'product') y una serie de configuraciones asociadas.
  2. Configurar el post type:

    • Configura diversas opciones como el nombre en singular, una descripción, y capacidades de soporte como editor, imagen destacada, revisiones, y estados de publicación.
    • Ejemplo de cómo iniciar esto en código:
    function productos_post_type() {
        $labels = array(
            'name' => 'Productos',
            'singular_name' => 'Producto',
            'menu_name' => 'Productos',
            'name_admin_bar' => 'Producto',
            // ...otros labels...
        );
    
        $args = array(
            'labels' => $labels,
            'public' => true,
            'has_archive' => true,
            'supports' => array('title', 'editor', 'thumbnail', 'revisions'),
            'show_in_rest' => true, // Enable Gutenberg editor
            // ...otros args...
        );
    
        register_post_type('producto', $args);
    }
    add_action('init', 'productos_post_type');
    
  3. Personalizar la apariencia en el administrador:

    • Define la posición en el menú de administración:
      'menu_position' => 5,
      
    • Añade un ícono representativo en el menú usando menu_icon.
  4. Configurar enlaces permanentes:

    • Después de registrar un nuevo post type, se requiere un ajuste en los enlaces permanentes para asegurar que el sistema actualice correctamente la estructura con el nuevo tipo de contenido.
  5. Personalizar la vista previa en el tema:

    • Modifica los archivos de plantilla como single-[post_type].php para ajustar cómo se presentan los posts en el frontend.
    // Dentro de single-producto.php
    if (have_posts()) :
        while (have_posts()) : the_post();
            the_title('<h1>', '</h1>');
            the_content();
        endwhile;
    endif;
    

¿Qué hacer si Gutenberg no se muestra correctamente?

En ocasiones, al implementar un nuevo post type, el editor Gutenberg no aparece automáticamente. Esto puede deberse a configuraciones omitidas en register_post_type:

  • Asegúrate de que show_in_rest está establecido en true para habilitar el editor de bloques.

¿Cómo mejorar y adaptar el diseño del producto?

Para personalizar la vista de tus productos, puedes trabajar con el archivo de plantilla single-producto.php, ajustando los tamaños de las columnas, añadiendo estilos CSS personalizados, o modificando el HTML según el diseño deseado. Esta libertad creativa te permite adaptar el sitio web exactamente a las expectativas del cliente o negocio.

En resumen, crear y manejar post types personalizados es una habilidad crítica para cualquier desarrollador de WordPress, abriendo un abanico de posibilidades para organizar, personalizar y mostrar contenido de maneras únicas y eficientes. Experimenta, personaliza y lleva tus proyectos al siguiente nivel.