Cómo crear Custom Post Type en WordPress
Solo obtenemos tres tipos de contenido incorporados en el backend cuando instalamos WordPress, es decir, publicaciones, páginas y medios. Sin embargo, no son suficientes, y aquí es donde el tipo de publicación personalizada de WordPress resulta útil.
Los Custom Post Type se utilizan para convertir un sitio web regular de WordPress en un sistema de administración de contenido. Como sugiere el nombre, puedes usar Custom Post Types para crear varios tipos de contenido para tu sitio web.
Tenemos disponibles de forma predeterminada en WordPress, que incluyen:
- Publicar – publicación de blog
- Página – página estática
- Adjunto: medios adjuntos
- Revisión – revisión posterior
- Menú de navegación – menú de navegación
Pero puede crear múltiples tipos de publicaciones, como Películas, Portafolios, etc.
Por ejemplo, si creamos un sitio web de noticias y deseas agregar un tipo de publicación personalizada titulada » Noticias «. Una vez creado, el tipo de publicación de noticias tendría su propio menú en el área de administración del panel de control de WordPress.
Crear un Custom Post Type
EL mejor sistema para crear un Custom Post Type en un sitio web de WordPress, es creando nuestro propio módulo y agregar el código en el, y sino hacerlo en el archivo function.php desde su directorio de temas de WordPress, un método que no recomiendo.
- Agregua el siguiente código al archivo function.php
/* Inicio de Custom Post Type */ function create_posttype() { register_post_type( 'noticias', // Opciones de CPT array( 'labels' => array( 'name' => __( 'noticias' ), 'singular_name' => __( 'Noticias' ) ), 'public' => true, 'has_archive' => false, 'rewrite' => array('slug' => 'noticias'), ) ); } // Conectando nuestra función a la configuración del tema add_action( 'init', 'create_posttype' ); /* Final Custom Post Type */
- Una vez que haya agregado el código, el tipo de publicación de Noticias aparecerá automáticamente en nuestro menú de administración
Pero ampliemos el código.
/* Inicio de Custom Post Type */ function cw_post_type_news() { $supports = array( 'title', // post title 'editor', // post content 'author', // post author 'thumbnail', // featured images 'excerpt', // post excerpt 'custom-fields', // custom fields 'comments', // post comments 'revisions', // post revisions 'post-formats', // post formats ); $labels = array( 'name' => _x('noticias', 'plural'), 'singular_name' => _x('noticias', 'singular'), 'menu_name' => _x('noticias', 'admin menu'), 'name_admin_bar' => _x('noticias', 'admin bar'), 'add_new' => _x('Add New', 'add new'), 'add_new_item' => __('Nuevas noticias'), 'new_item' => __('Nuevas noticias'), 'edit_item' => __('Editar noticias'), 'view_item' => __('Ver noticias'), 'all_items' => __('Todas las noticias'), 'search_items' => __('Buscar noticias'), 'not_found' => __('No se encontraron noticias.'), ); $args = array( 'supports' => $supports, 'labels' => $labels, 'public' => true, 'query_var' => true, 'rewrite' => array('slug' => 'noticias'), 'has_archive' => true, 'hierarchical' => false, ); register_post_type('noticias', $args); } add_action('init', 'cw_post_type_news'); /*Custom Post type end*/
- Al crear Custom Post Type, es necesario usar init para el gancho en add_action() , y la función register_post_type() tomará los argumentos
$supports: especifica que el tipo de publicación es compatible y admite todas las funciones esenciales.
$labels: especifica que el tipo de publicación se remite correctamente al área de administración.
$args: especifica un slug de enlace permanente de las noticias y una posición de menú ubicada justo debajo del menú Publicaciones .
Los pasos anteriores indican cómo registrar Custom Post Type de WordPress en el backend de cualquier tema.
Cómo crear una plantilla
Crear una plantilla de listado de news requiere crear un nuevo archivo llamado noticias.php.
- Coloqa el archivo recién creado en su carpeta de temas.
- Agrega el siguiente código al archivo:
<?php /*Template Name: Noticias*/ get_header(); query_posts(array( 'post_type' => 'noticias' )); ?> <?php while (have_posts()) : the_post(); ?> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <p><?php the_excerpt(); ?></p> <?php endwhile; get_footer(); ?>
Crea una plantilla detalle o página de «detalle» para el CPT siguiendo los pasos a continuación:
- Agrega un nuevo archivo llamado noticia-sinple.php (ubicado en su tema de WordPress)
- Agrega el siguiente código al archivo:
<?php get_header(); /* Start the Loop */ while (have_posts()) : the_post(); get_template_part('template-parts/post/content', get_post_format()); endwhile; // End of the loop. get_footer(); ?>
Seleccione una plantilla
- Ves a tu panel de WordPress
- Haz clic en Páginas > Agregar nuevo
- Crear una nueva página llamada » Noticias «
- Haz clic en Atributos de página en el lado derecho y acceda al menú desplegable en Plantilla
- Selecciona la nueva plantilla » Noticias «
- Haz clic en el botón Actualizar para configurar su plantilla
¡Terminando!
Ahora has aprendido cómo crear un Custom Post Type en WordPress, que es bastante complejo pero se puede hacer fácilmente siguiendo los pasos mencionados en este blog.