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.
/*
* 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.
- Tipos de artículos en WordPress
- Cómo registrar un tipo personalizado de artículo en WordPress
- Cómo registrar un tipo personalizado de artículo utilizando un plugin en WordPress
- Cómo desregistrar un tipo personalizado de artículo en WordPress
- Cómo modificar un tipo de artículo en WordPress
Código fuente
El código fuente desarrollado en este tutorial está disponible aquí.
Comentarios