21 noviembre 2024

¿Para qué y cómo utilizar «Custom Post Types» o entradas personalizadas en WordPress?

Manejar un sitio web de una empresa o emprendimiento requiere que se utilicen otros tipos de datos junto a los post normales de WP, en la misma  Base de Datos. Por ejemplo, si nos dedicamos a una editorial o imprenta, necesitaremos los títulos de libros y por otro lado, necesitaremos manejar los autores. En este caso, crearemos un custom post type llamado «Libro» y el autor será tratado como una taxonomía o característica propia del post o entrada.

Crear un Custom Post Type, implica desarrollar en el área de Plugins del sitio, una carpeta con un archivo escrito en php, donde serán definidas todas sus características. Generar este código puede hacerse totalmente a mano, pero también puedes utilizar un servicio llamado GenerateWP, que te va guiando en cada paso: Deberás crear una cuenta y luego seleccionar el servicio que necesites, por ejemplo Post Type Generator

generateWP

 

Siguiendo los pasos, llegaremos a obtener el código, haciendo clic en Update Code. Todo este código lo vamos a copiar y pegar en nuestro nuevo archivo al que llamaremos: libros-post-type.php que estará ubicado en la carpeta Libros dentro de Plugins. ( Luego deberás activarlo en el Escritorio de WP como cualquier otro Plugin)

/* Plugin Name: Libros
Plugin URI: http://venadosoft.com.ar/
Description: Este plugin te agregar un custom post-type llamado libros, con alta, baja, etc
Author: Andrea Cummins
Version: 1.0
Author URI: http://www.venadosoft.com.ar/
*/
if ( ! function_exists('Libros_post_type') ) {

// Register Custom Post Type
function Libros_post_type() {

	$labels = array(
		'name'                => _x( 'Libros', 'Post Type General Name', 'Libros' ),
		'singular_name'       => _x( 'Libro', 'Post Type Singular Name', 'Libros' ),
		'menu_name'           => __( 'Libros', 'Libros' ),
		'parent_item_colon'   => __( 'Superior:', 'Libros' ),
		'all_items'           => __( 'Todos los Libros', 'Libros' ),
		'view_item'           => __( 'Ver libro', 'Libros' ),
		'add_new_item'        => __( 'Agregar Nuevo Libro', 'Libros' ),
		'add_new'             => __( 'Agregar nuevo', 'Libros' ),
		'edit_item'           => __( 'Editar libro', 'Libros' ),
		'update_item'         => __( 'Actualizar Libro', 'Libros' ),
		'search_items'        => __( 'Buscar Libro', 'Libros' ),
		'not_found'           => __( 'No encontrado', 'Libros' ),
		'not_found_in_trash'  => __( 'No encontrado en la papelera', 'Libros' ),
	);
	$args = array(
		'label'               => __( 'libros', 'Libros' ),
		'description'         => __( 'Descripcion Libros', 'Libros' ),
		'labels'              => $labels,
		'supports'            => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments', 'trackbacks', ),
		'taxonomies'          => array( 'category', 'post_tag' ),
		'hierarchical'        => true,
		'public'              => true,
		'show_ui'             => true,
		'show_in_menu'        => true,
		'show_in_nav_menus'   => true,
		'show_in_admin_bar'   => true,
		'menu_position'       => 5,
		'can_export'          => true,
		'has_archive'         => true,
		'exclude_from_search' => false,
		'publicly_queryable'  => true,
		'capability_type'     => 'page',
	);
	register_post_type( 'libros', $args );

}

// Hook into the 'init' action
add_action( 'init', 'Libros_post_type', 0 );

}

De esta manera, subiendo el archivo a la carpeta Plugins de nuestro alojamiento web, tendremos activadas las características necesarias para dar de ALTA/BAJA o Modificar datos de Libros en nuestro sitio WEB.
Si luego queremos generar la característica extra Autor, podemos generar una taxonomía que se agregue al mismo:

Vamos de vuelta a generateWP y elegimos el generador de taxonomies.  Al completar todos los campos, obtendremos un código como el siguiente ( que agregaremos al archivo libros-post-type.php que creamos previamente):

if ( ! function_exists( 'autores_taxonomy' ) ) {

// Register Custom Taxonomy
function autores_taxonomy() {

	$labels = array(
		'name'                       => _x( 'Autores', 'Taxonomy General Name', 'autores' ),
		'singular_name'              => _x( 'Autor', 'Taxonomy Singular Name', 'autores' ),
		'menu_name'                  => __( 'Autor', 'autores' ),
		'all_items'                  => __( 'Todos los autores', 'autores' ),
		'parent_item'                => __( 'Superior', 'autores' ),
		'parent_item_colon'          => __( 'Superior:', 'autores' ),
		'new_item_name'              => __( 'Nuevo autor', 'autores' ),
		'add_new_item'               => __( 'Agregar Nuevo Autor', 'autores' ),
		'edit_item'                  => __( 'Editar autor', 'autores' ),
		'update_item'                => __( 'Actualizar Autor', 'autores' ),
		'separate_items_with_commas' => __( 'Separar autores con comas', 'autores' ),
		'search_items'               => __( 'Buscar autor', 'autores' ),
		'add_or_remove_items'        => __( 'Agregar o eliminar autor', 'autores' ),
		'choose_from_most_used'      => __( 'Elegir entre mas utilizados', 'autores' ),
		'not_found'                  => __( 'No encontrado', 'autores' ),
	);
	$args = array(
		'labels'                     => $labels,
		'hierarchical'               => false,
		'public'                     => true,
		'show_ui'                    => true,
		'show_admin_column'          => true,
		'show_in_nav_menus'          => true,
		'show_tagcloud'              => true,
	);
	register_taxonomy( 'autores', array( 'libros' ), $args );

}

// Hook into the 'init' action
add_action( 'init', 'autores_taxonomy', 0 );

}

Enlace | GenerateWP

Siguenos por Twitter a través de @Geeksroom y no te pierdas todas las noticias, cursos gratuitos y demás artículos. También puedes seguirnos a través de nuestro canal de Youtube para ver nuestros vídeos, a través de Instagram para ver nuestras imágenes! O vía Bluesky si ya estás cansado de Twitter

Andrea Cummins

Andrea Cummins Es Senior Editor de GeeksRoom. Estudió Ciencias de la Computación en la facultad de Cs Exactas de la Universidad de Buenos Aires. Hace 23 años que vive en el campo, en la ciudad de Venado Tuerto, Santa Fe y gracias a Internet, pudo seguir actualizándose con las nuevas tecnologías. A medida que pasó el tiempo se fue capacitando de manera autodidacta y participando en Congresos y Cursos. Su empresa se llama VenadoSoft. Su hobbie es la fotografía y le encanta mostrar su ciudad y su gente a través de su lente.

Ver todas las entradas de Andrea Cummins →