Crear plugin Custom Post Type WordPress

Una de las cosas que más me gusta de WordPress es su capacidad de personalización…

crear-custom-post-type-wordpress

Una de las cosas que más me gusta de WordPress es su capacidad de personalización y la posibilidad de crear Custom Post Types (CPT). Puedes crear estas funcionalidades para gestionar portfolios, eventos, casi todo lo que se te ocurra. Por ejemplo, si entras en mi web en proyectos (esto es un CPT), donde añado todos los diseño que voy creando.

Así que vamos al lío con este pequeño tutorial acerca de los Custom Post Type creando un plugin sencillo. Ya en otra guía, veremos como añadir datos dinámicos a estos CPT que puede resultar extremadamente interesante para ahorrar trabajo en nuestras webs.

🥇 ¿Qué es un Custom Post Type y por qué usarlo?

Un Custom Post Type es un tipo de contenido personalizado que puedes crear para gestionar información específica en tu sitio web. Por defecto, WordPress viene con varios tipos de contenido integrados, como:

  • Post (entradas del blog).
  • Page (páginas estáticas).
  • Attachment (archivos subidos).

➡ Con un CPT puedes crear algo completamente nuevo, como:

  • Una sección de eventos.
  • Un portfolio para proyectos (por ejemplo como el que tengo yo)
  • Una base de datos de libros o recetas.

Usar un plugin personalizado para crear un CPT es una práctica recomendada, ya que así mantienes tu código separado del tema y evitas problemas al cambiar de diseño.

🚀 Paso 1: Crear la estructura básica del plugin

Primero, vamos a crear un plugin personalizado para gestionar tu Custom Post Type.

  1. Accede a los archivos de tu instalación de WordPress mediante FTP o desde tu servicor cPanel.
  2. Busca la carpeta/wp-content/plugins/ y crea una nueva carpeta. Por ejemplo: mi-cpt-plugin.
  3. Dentro de esa carpeta, crea un archivo PHP con el mismo nombre. Por ejemplo: mi-cpt-plugin.php.
  4. Abre el archivo con tu editor de código preferido y pega el siguiente código base:
<?php
/*
Plugin Name: Mi Plugin de CPT
Description: Un plugin para crear un Custom Post Type.
Version: 1.0
Author: Tu Nombre
*/

// Evitar acceso directo
if ( !defined( 'ABSPATH' ) ) exit;

Este archivo ahora es un plugin válido que puedes activar desde el panel de WordPress.

🙌 Paso 2: Registrar el Custom Post Type

WordPress tiene una función llamada register_post_type() que usamos para registrar nuestro CPT. Añade el siguiente código dentro del archivo del plugin:

function mi_cpt_plugin_registrar_cpt() {

    $labels = array(
        'name'               => 'Proyectos',
        'singular_name'      => 'Proyecto',
        'menu_name'          => 'Proyectos',
        'name_admin_bar'     => 'Proyecto',
        'add_new'            => 'Añadir Nuevo',
        'add_new_item'       => 'Añadir Nuevo Proyecto',
        'edit_item'          => 'Editar Proyecto',
        'new_item'           => 'Nuevo Proyecto',
        'view_item'          => 'Ver Proyecto',
        'search_items'       => 'Buscar Proyectos',
        'not_found'          => 'No se encontraron proyectos',
        'not_found_in_trash' => 'No se encontraron proyectos en la papelera',
    );

    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'has_archive'        => true,
        'rewrite'            => array( 'slug' => 'proyectos' ),
        'supports'           => array( 'title', 'editor', 'thumbnail' ),
        'menu_icon'          => 'dashicons-portfolio',
    );

    register_post_type( 'proyectos', $args );
}

add_action( 'init', 'mi_cpt_plugin_registrar_cpt' );

➡ Detalles del código

  • Labels: define los textos visibles en el panel de administración de WordPress.
  • public: hace que el Custom Post Type sea visible tanto en el panel de administración como en el front-end.
  • has_archive: permite tener una página de archivo para listar todos los elementos del CPT.
  • rewrite: define la URL amigable (slug).
  • supports: especifica qué opciones tendrá cada elemento (título, editor, imágenes destacadas, extracto etc.).
  • menu_icon: cambia el ícono en el panel de administración. Puedes encontrar más íconos en Dashicons (la web donde están todos los iconos).

pagina-oficial-wordpress-dashicons

📌 Paso 3: Activar el plugin en nuestra web

  1. Entra al panel de administración de WordPress.
  2. Accede a Plugins > Plugins instalados.
  3. Encuentra tu plugin (“Mi Plugin de CPT”) y actívalo.
  4. Verás un nuevo menú llamado “Proyectos” en el panel de administración.

🤟 Paso 4: Personalizar el CPT con taxonomías

Para categorizar y organizar tu contenido, puedes registrar taxonomías personalizadas. Añade este código debajo del registro del CPT:

function mi_cpt_plugin_registrar_taxonomias() {

    $labels = array(
        'name'              => 'Categorías de Proyectos',
        'singular_name'     => 'Categoría de Proyecto',
        'search_items'      => 'Buscar Categorías',
        'all_items'         => 'Todas las Categorías',
        'edit_item'         => 'Editar Categoría',
        'add_new_item'      => 'Añadir Nueva Categoría',
    );

    $args = array(
        'labels'            => $labels,
        'hierarchical'      => true,
        'public'            => true,
        'rewrite'           => array( 'slug' => 'categorias-proyectos' ),
    );

    register_taxonomy( 'categorias_proyectos', 'proyectos', $args );
}

add_action( 'init', 'mi_cpt_plugin_registrar_taxonomias' );

Este código crea una taxonomía personalizada similar a las categorías de las entradas.

👋 Paso 5: Prueba y ajustes finales

  1. Ve al nuevo menú de “Proyectos” y crea un proyecto de prueba.
  2. Revisa que los campos como título, contenido y miniatura funcionen correctamente.
  3. Accede a la página de archivo (tusitio.com/proyectos/) para ver la lista de proyectos.

➡ Depuración de URL

Si no ves la página de archivo, ve a Ajustes > Enlaces permanentes y guarda los cambios sin modificar nada. Esto regenera las URLs amigables.

Y hasta aquí esta mini guía de cómo crear un Custom Post Type en Plugin en WordPress. La verdad que funcionan muy bien y hoy en día se pueden crear en online incluso en algunas páginas. Pero en este caso lo hemos visto de manera rápida con un plugin y algo de código. Sin duda es una práctica profesional que garantiza escalabilidad y flexibilidad para tu sitio web.

Si esta guía te ha sido útil, ¡no dudes en compartirla! Y si necesitas ayuda profesional para personalizar tu WordPress, contáctame para hacer realidad tu proyecto

¿Necesitas ayuda con tu Web o SEO?

Contacta para presupuesto y comentamos la jugada juntos..
¡Contacta!

Artículos recientes

Páginas web corporativas a 👋 medida

Servicios web para tu negocio..

Artículos relacionados

Abrir chat
Hola
¿En qué puedo ayudarte?
contacto
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Puedes revisar nuestra política de privacidad.