Tutorial

Cómo desregistrar un tipo personalizado de artículo en WordPress

La función unregister_post_type desregistra un tipo personalizado de artículo en WordPress.

Preparación

Registra el tipo personalizado de artículo Libro, «Book» en inglés, utilizando el código a continuación. Abre el área de administración y verifica que tenga una sección para administrar publicaciones del tipo de artículo Libro.

Traduce las cadenas que hayan en el código para que se vean en español.

Área de administración de WordPress - Tipo de artículo "Libro"
/*
 * Registers the custom post type Book.
  */
function ns_register_book_cpt(){
    
 // See all possible labels in the PHPDoc of the function get_post_type_labels
 $labels = array(
 'name' => __('Books', 'ns'),
 'singular_name' => __('Book', 'ns'),
 'menu_name' => __('Books', 'ns'),
 'all_items' => __('All Books', 'ns'),
 'add_new' => __('Add New', 'ns'),
 'add_new_item' => __('Add New Book', 'ns'),
 'edit_item' => __('Edit Book', 'ns'),
 'new_item' => __('New Book', 'ns'),
 'view_item' => __('View Book', 'ns'),
 'view_items' => __('View Books', 'ns'),
 'search_items' => __('Search Books', 'ns'),
 'not_found' => __('No books found.', 'ns'),
 'not_found_in_trash' => __('No books found in Trash.', 'ns'),
 'archives' => __('Book Archives', 'ns'),
 'filter_items_list' => __('Filter books list', 'ns'),
 'items_list_navigation' => __('Books list navigation', 'ns'),
 'items_list' => __('Books list', 'ns')
 );
    
 // See all possible attributes in the PHPDoc of the function register_post_type
 $args = array(
 'label' => __('Books', 'ns'),
 'labels' => $labels, 
 'public' => true,
 'exclude_from_search' => false,
 'publicly_queryable' => true,
 'show_ui' => true,
 'show_in_nav_menus' => true,
 'show_in_menu' => true,
 'show_in_admin_bar' => true,
 'hierarchical' => false,
 'supports' => array('title', 'editor', 'author'), 
 'taxonomies' => array('post_tag'),
 'has_archive' => true, 
 'rewrite' => array('slug' => 'books'),
 'query_var' => 'book'
 );
    
 register_post_type('ns_book_cpt', $args);
}
add_action('init', 'ns_register_book_cpt', 10, 0);

Sintaxis

unregister_post_type($post_type) desregistra el tipo de artículo que tenga el identificador $post_type. Retorna TRUE si todo fue bien, o WP_Error si el tipo de artículo no existe o si es un tipo nativo de artículo.

Dado que los tipos de artículos normalmente se registran durante la acción 'init', llama esta función durante la acción 'init' también, pero tarde. De lo contrario, podrías estar intentando desregistrar un tipo de artículo que aún no se ha registrado.

Ejemplo

Desregistra el tipo personalizado de artículo Libro con el siguiente código. Al llamar a add_action, se utiliza un número grande en el tercer argumento para tratar de poner esta tarea al final de la acción 'init'.

/*
 * Unregisters the custom post type Book.
  */
function ns_unregister_book_cpt(){
    
 unregister_post_type('ns_book_cpt');
}
add_action('init', 'ns_unregister_book_cpt', 9999, 0);

Vuelve a cargar el área de administración y comprueba que el menú Libros ha desaparecido. WordPress ha eliminado este tipo de la lista de tipos de artículos registrados.

Datos

Desregistrar un tipo de artículo no elimina de la base de datos las publicaciones del tipo de artículo. Solo le dice a WordPress que el tipo de artículo ya no existe y WordPress elimina todas las funcionalidades creadas para el tipo de artículo.

Elimina el código que desregistra el tipo de artículo Libro, vuelve a cargar el área de administración, y comprueba que aparece el menú Libros, incluidas las publicaciones que hayas creado.

Casos de uso

Rara vez deberás desregistrar un tipo de artículo. Una situación probable es cuando uses un tema o plugins que agreguen más tipos de artículos de los necesarios. En este caso, considera desregistrar los tipos de artículos que no uses para mantener limpia el área de administración de WordPress.

Importante: Ten precaución al desregistrar tipos de artículos y comprende las consecuencias de cada paso. De lo contrario, puedes llevar a WordPress a un estado corrupto.

Rendimiento

Desregistrar un tipo de artículo agrega más código al cargar cada página. Si el rendimiento es una preocupación, una mejor opción es mover los tipos de artículos que no se utilicen hacia el final del área de administración de WordPress.

Aprende aquí a reordenar los menús del área de administración.

Saber más

Te recomiendo los otros tutoriales de esta serie para que sepas más sobre los tipos de artículos en WordPress.

Código fuente

El código fuente desarrollado en este tutorial está disponible aquí.

WordPress

Trabaja desde Cuba y cobra en el extranjero

Trabaja en el extranjero desde Cuba y cobra utilizando TropiPay. Podrás enviar tu dinero a cualquier país o retenerlo en TropiPay en euros para ahorrar. Registrarse.

Más información

Últimos tutoriales