Crear Custom Post Type en WordPress

Crear Custom Post Type en WordPress

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.