Cómo crear Custom Post Types en WordPress

Antonio J. Galisteo

Ya vimos cómo crear un Custom Post Type, en esta ocasión, vamos a ver cómo crear Custom Post Types en WordPress. Lo podemos hacer de dos maneras, a través de un plugin o a través de código.

Crear Custom Post Types con plugin

Hay varios plugins que nos permiten crear custom post types en WordPress, para el ejemplo vamos a usar Custom post Type UI que esta en el repositorio oficial de WordPress y es gratuito. Lo puedes descargar desde la url del sitio o desde la sección de plugins de tu WordPress.

Una vez instalado, tendremos una nueva opción en el menú lateral de WordPress llamado CPT UI donde podremos agregar un nuevo custom post type. Como puedes observar son muchas las opciones que puedes configurar para el nuevo tipo de dato, son todas las que soporta wordpress para los custom post type.

Cómo crear Custom Post Types en WordPress

Crear Custom Post Types con código

Para crear un Custom Post Type con código debemos editar el archivo functions.php y agregar ahí el código. Yo te voy a poner un ejemplo aquí de un custom post type llamado Curso que tu puedes copiar y editar a tu gusto. Tal vez no veas bien formateado el siguiente código, copialo en tu editor favorito y lo podrás ver mejor.

function Cursos_init() {
$labels = array(
    'name'              => _x( 'Cursos', 'post type general name', 'your-plugin-textdomain' ),
    'singular_name'     => _x( 'Cursos', 'post type general name', 'your-plugin-textdomain' ),
    'menu_name'         => _x( 'Mis Cursos', 'admin menu', 'your-plugin-textdomain' ),
    'name_admin_bar'    => _x( 'Cursos', 'add new on admin bar', 'your-plugin-textdomain' ),
    'add_new'           => _x( 'Añadir nuevo', 'curso', 'your-plugin-textdomain' ),
    'add_new_item'      => __( 'Añadir nuevo curso', 'your-plugin-textdomain' ),
    'new_item'          => __( 'Nuevo curso', 'your-plugin-textdomain' ),
    'edit_item'         => __( 'Editar curso', 'your-plugin-textdomain' ),
    'view_item'         => __( 'Ver curso', 'your-plugin-textdomain' ),
    'all_items'         => __( 'Todos los Cursos', 'your-plugin-textdomain' ),
    'search_items'      => __( 'Buscar Cursos', 'your-plugin-textdomain' ),
    'parent_item_colon' => __( 'Cursos padre', 'your-plugin-textdomain' ),
    'not_found'         => __( 'No hemos encontrado Cursos.', 'your-plugin-textdomain' ),
    'not_found_in_trash'=> __( 'No hemos encontrado Cursos en la papelera', 'your-plugin-textdomain' ),
);

$args = array(
    'labels'            => $labels,
    'description'       => __('Description', 'your-plugin-textdomain'),
    'public'            => true,
    'public_queryable'  => true,
    'show_ui'           => true,
    'show_in_menu'      => true,
    'query_var'         => true,
    'rewrite'           => array( 'slug' => 'curso' ),
    'capability_type'   => 'post',
    'has_archive'       => true,
    'hierarchical'      => false,
    'menu_position'     => null,
    'menu_icon'         => 'dashicons-admin-multisite',
    'supports'          => array( 'title', 'editor', 'author', 'thumbnail' )
);

register_post_type( 'curso', $args );
}
add_action( 'init', 'Cursos_init' );

Si además quieres que este custom post type esté accesible desde la API Rest de WordPress debes agregar un atributo más:

'show_in_rest'     => true,

Es fácil saber para qué sirven casi todos los atributos ya que tienen nombres intuitivos, pero si tienes alguna duda puedes consultar la documentación oficial de WordPress para los Custom Post Types.

Ya sabes cómo crear custom post types. Puedes aprender más en nuestra sección de WordPress.

Espero que te haya sido de utilidad!

Publicado el 11-03-2019

Donar

Si te ha sido de ayuda y quieres hacer una donación te lo agradeceremos :)

Compartelo!

Deja un comentario

Comentanos

*

Ir arriba de la pagina