Instrucciones para crear tipos de publicaciones personalizados en WordPress

Tabla de Contenidos
Una ilustración muestra a una persona que señala una gran pantalla con varias ventanas. La pantalla muestra texto y una imagen. En el fondo se pueden ver hojas azuladas como decoración.
A menudo se considera erróneamente que WordPress es una plataforma de blogs pura, aunque en los últimos años se ha convertido en uno de los sistemas de gestión de contenido más potentes. Por defecto, WordPress ofrece los tipos de publicaciones 'Entrada' y 'Página'. Pero puedes crear muchos tipos de contenido personalizados, que se denominan tipos de publicaciones personalizados. En este artículo te mostramos cómo crear y utilizar profesionalmente tus propios tipos de publicaciones personalizados en WordPress.

¿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:

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.

Aprende más en la documentación de WordPress >>

¿Es este tema complejo para usted?
¡No te preocupes! Puedes hacer fácilmente una solicitud para la creación de un plugin y nos encargaremos de ello.

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 '<h2>' . get_the_title() . '</h2>';
        echo '<div class="entry-content">' . get_the_content() . '</div>';
    endwhile;
    wp_reset_postdata();
else :
    echo '<p>' . __('Sorry, no posts matched your criteria.') . '</p>';
endif;
				
			
¿Está buscando una solución sencilla?
Si este tema parece demasiado complicado, ¡déjenos ayudarle! Solicite hoy la creación de su plugin personalizado.

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.

¡No te pierdas nuevas publicaciones!
Suscríbase a nuestro boletín y reciba los últimos consejos sobre este tema directamente en su bandeja de entrada.
Mobin
CTO
Soy un desarrollador con conocimientos en los lenguajes de programación PHP y JavaScript, especializado en el desarrollo de WordPress. Siempre tengo curiosidad y estoy emocionado de descubrir nuevas habilidades. Además, tengo experiencia con el framework Laravel y Flutter.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicaciones similares
¡Mantente informado!
Consejos y novedades exclusivas directamente en tu bandeja de entrada.
Hemos recibido su selección:

Paquete de negocio de la página web

Paquete de negocio de la página web

Su solicitud de página web