¿Qué es un tipo de publicación personalizado en WordPress?
Un tipo de entrada personalizado o Custom Post Type es un modelo de contenido como entradas y páginas. A medida que WordPress ha evolucionado de un blog a un sistema de gestión de contenido, la palabra "entrada" permanece. Sin embargo, puede referirse a cualquier tipo de contenido en WordPress. Por defecto, existen los siguientes tipos de entrada:
- Entrada (post)
- Página (page)
- Adjunto (attachment)
- Revisión (revision)
- Menú de navegación (nav-menu)
Puede crear cualquier tipo de publicación y nombrarlo como desee. Por ejemplo, si tiene un sitio web de críticas y presentaciones de películas, es posible que necesite un tipo de publicación para películas. Estos tipos de publicación pueden tener secciones y categorizaciones propias, como portafolio, testimonios, productos, etc.
Creación de tipos de publicación personalizados con un plugin
La forma más sencilla de crear tipos de publicación en WordPress es utilizando un plugin. Dado que este método es simple y seguro, se recomienda a los principiantes.
Primero, instale y active el plugin “Custom Post Type UI“. Después de la activación, el plugin añade un nuevo elemento llamado CPT UI al menú de administración.
Para crear un nuevo tipo de entrada, vaya a CPT UI » Añadir nuevo.
El plugin “Custom Post Type UI” también permite la creación de taxonomías personalizadas.
Por lo tanto, la página de Custom Post Type está dividida en dos columnas. A la izquierda hay un formulario para configurar el tipo de entrada personalizado, a la derecha para crear taxonomías.
En la columna de tipos de entrada personalizados, primero debe establecer un nombre. Este no debe tener más de 20 caracteres, por ejemplo, películas, recetas, ofertas, etc.
En el siguiente paso, establezca una etiqueta para el tipo de entrada. Esta etiqueta se mostrará en el área de administración de WordPress. Para un significado más claro, utilice la forma plural del término, por ejemplo, Películas, Glosario, etc.
Finalmente, escriba una descripción para su tipo de entrada personalizado. Esta debe explicar de manera sencilla para qué propósito se creó el tipo de entrada.
Luego, haga clic en el botón 'Crear tipo de entrada personalizado' para crear el nuevo tipo de entrada. Listo.
También puede hacer clic en los enlaces 'Opciones de etiqueta avanzadas' y 'Opción avanzada' y cambiar más detalles sobre el tipo de entrada.
Creación de tipos de publicaciones personalizados manualmente
El problema al crear tipos de publicaciones con plugins es que, al desactivarlos, todos los tipos de publicaciones ya no se muestran. Todo el contenido de las publicaciones individuales se mantiene, pero el tipo de publicación ya no se muestra en el área de administración.
Si está trabajando en el sitio web de un cliente y no desea instalar un plugin, puede agregar el tipo de publicación personalizado a través del siguiente código en el archivo functions.php de su tema.
Aquí hay un ejemplo rápido y completo para que entienda cómo funciona:
function create_posttype() {
register_post_type('movies', [
'labels' => [
'name' => __('Movies'),
'singular_name' => __('Movie')
],
'public' => true,
'has_archive' => true,
'rewrite' => ['slug' => 'movies']
]);
}
add_action('init', 'create_posttype');
Este código registra un tipo de entrada llamado "movies" con una serie de argumentos que son las opciones para el tipo de entrada.
Aquí se explican los detalles de las opciones:
function custom_post_type() {
$labels = [
'name' => _x('Movies', 'Post Type General Name', 'twentythirteen'),
'singular_name' => _x('Movie', 'Post Type Singular Name', 'twentythirteen'),
'menu_name' => __('Movies', 'twentythirteen'),
'parent_item_colon' => __('Parent Movie', 'twentythirteen'),
'all_items' => __('All Movies', 'twentythirteen'),
'view_item' => __('View Movie', 'twentythirteen'),
'add_new_item' => __('Add New Movie', 'twentythirteen'),
'add_new' => __('Add New', 'twentythirteen'),
'edit_item' => __('Edit Movie', 'twentythirteen'),
'update_item' => __('Update Movie', 'twentythirteen'),
'search_items' => __('Search Movie', 'twentythirteen'),
'not_found' => __('Not Found', 'twentythirteen'),
'not_found_in_trash' => __('Not found in Trash', 'twentythirteen')
];
$args = [
'label' => __('movies', 'twentythirteen'),
'description' => __('Movie news and reviews', 'twentythirteen'),
'labels' => $labels,
'supports' => ['title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields'],
'taxonomies' => ['genres'],
'hierarchical' => false,
'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('movies', $args);
}
add_action('init', 'custom_post_type', 0);
Este código complementa una variedad de opciones como soporte para comentarios, campos personalizados, etc. También hay una taxonomía llamada "géneros". Cambie hierarchical
a true
, para permitir relaciones padre-hijo similares a las de las páginas.
Mostrar tipos de publicaciones personalizadas en el sitio web
Por defecto, WordPress puede mostrar tipos de publicaciones personalizadas. Una vez que se han creado algunos, puedes mostrarlos.
Mostrar con plantilla de archivo predeterminada
Ve a Diseño » Menús y añade un enlace a tu menú. Este hará referencia a tus tipos de publicaciones personalizadas, típicamente en esta forma:
- http://example.com/movies
- http://example.com?post_type=movies
Guarde el enlace en el menú principal y haga clic en él en su sitio web. Esto lo llevará a un archivo de sus tipos de publicaciones personalizadas. Para cambiar la apariencia, modifique el archivo archive.php
del tema.
Uso de plantillas para archivos y publicaciones individuales
Puede crear plantillas especiales. Cree un archivo llamado archive-movies.php
en el directorio del tema y copie el contenido de archive.php
dentro para hacer ajustes.
Cree un archivo para publicaciones individuales single-movies.php
y copie el contenido de single.php
dentro para hacer ajustes.
Mostrar tipos de publicaciones personalizadas en la página de inicio
Agregue el siguiente código en el archivo functions.php
Introduzca su tema para mostrar tipos de publicaciones personalizadas también en la página de inicio:
add_action('pre_get_posts', 'add_my_post_types_to_query');
function add_my_post_types_to_query($query) {
if (is_home() && $query->is_main_query()) {
$query->set('post_type', ['post', 'movies']);
}
return $query;
}
Consulta de tipos de publicaciones
Utilice el siguiente código para consultas específicas en sus plantillas:
// Query args
$args = ['post_type' => 'movies', 'posts_per_page' => 10];
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
while ($the_query->have_posts()) : $the_query->the_post();
echo '' . get_the_title() . '
';
echo '' . get_the_content() . '';
endwhile;
wp_reset_postdata();
else :
echo '' . __('Sorry, no posts matched your criteria.') . '
';
endif;
Mostrar en widgets
Como ya ha visto, en WordPress hay widgets estándar como la visualización de las últimas publicaciones. Sin embargo, estos widgets no permiten la visualización de tipos de publicaciones. Pero, ¿qué hacer si queremos mostrar estos tipos de publicaciones por las más recientes? Hay una solución sencilla para ello.
Primero, debe instalar y activar el plugin Ultimate Post Widget. Después de la activación, vaya a Apariencia >> Widgets y añada el Ultimate Post Widget a su barra lateral.
Este potente widget le permite mostrar todas las publicaciones independientemente de su tipo. Además, puede mostrar el inicio de la publicación junto con un enlace de 'Leer más' al lado de su imagen y título. Personalice el widget según sus deseos y los tipos de publicaciones que desea mostrar. Luego, guarde los cambios y vea el resultado en su sitio web.
Más consejos para tipos de publicaciones personalizadas
Hay muchas cosas que puede hacer con los tipos de contribución. Puede mostrarlos en su feed RSS o categorizarlos según su feed. Si utiliza el sistema de comentarios de Disqus, también puede realizar los ajustes correspondientes en WordPress.
Esperamos que este artículo le haya ayudado a crear los tipos de publicaciones personalizados que deseaba. Si tiene preguntas o sugerencias útiles para mejorar los tipos de publicaciones, háganoslo saber en la sección de comentarios.