Cómo crear un tipo de publicación personalizada de WordPress mediante programación

Publicado: 2021-10-05

¿Quieres publicar tipos de publicaciones personalizadas en tu sitio? Te tenemos cubierto. En esta guía, le enseñaremos cómo crear un tipo de publicación personalizada de WordPress mediante programación con un poco de código.

Inicialmente, WordPress fue creado para publicar publicaciones. Sin embargo, después de todos estos años, WordPress es mucho más que una plataforma para publicar posts. Hoy en día, es la solución web más completa que impulsa casi el 40% de todos los sitios web.

A pesar de que ha incorporado muchas funcionalidades, la publicación de publicaciones sigue siendo una de las mejores formas de atraer usuarios a su sitio y mantenerlos comprometidos. WordPress ofrece tipos de publicaciones predeterminados, pero si desea personalizar su sitio y hacerlo único para que se destaque de sus competidores, la creación de tipos de publicaciones personalizados puede ser una buena solución.

En este tutorial, le mostraremos cómo crear y publicar tipos de publicaciones personalizadas de WordPress mediante programación . Antes de pasar a eso, comprendamos mejor qué son exactamente los tipos de publicaciones personalizadas y cuándo debe usarlos.

¿Qué es un tipo de publicación personalizada?

Los tipos de publicaciones personalizadas son tipos de contenido. WordPress viene con varios tipos de publicaciones de forma predeterminada. Las publicaciones y las páginas son las más famosas, pero hay otras:

  • Publicaciones
  • Paginas
  • Archivos adjuntos
  • Menús de navegación
  • Revisiones
  • CSS personalizado
  • conjuntos de cambios

La mayoría de los usuarios usan los primeros cinco tipos, pero hay otros tipos. En realidad, probablemente esté usando algunos de ellos sin saber que son tipos de publicaciones personalizadas.

El mejor ejemplo de un tipo de publicación personalizada son los productos de WooCommerce. Cuando activa WooCommerce por primera vez, el complemento crea un tipo de publicación personalizada llamada "Productos". Una vez que comienza a crear productos, se publican como un tipo de publicación de producto, con todas las mejoras que ofrece WooCommerce.

Aunque estos tipos de publicaciones no se denominan personalizados, puede crear sus tipos de publicaciones de la misma manera que lo hace WooCommerce y darles el nombre que desee. Por ejemplo, eventos, listados, horarios, lecciones, portafolios y perfiles pueden ser nombres de tipos de publicaciones que serán útiles para sitios web específicos.

En general, los tipos de publicaciones personalizadas son un nuevo tipo de publicación que los usuarios pueden crear de acuerdo con los requisitos específicos para personalizar su sitio web.

¿Por qué y cuándo debería usar un tipo de publicación personalizada?

Los tipos de publicaciones personalizadas (CPT) pueden ser muy diferentes según cómo se construyan, por lo que puede usarlos para lograr todo tipo de soluciones.

Puede usar tipos de publicaciones personalizadas cuando:

  • Vas a publicar regularmente algún tipo específico de información que no puedes publicar usando el tipo de publicación predeterminado
  • Necesidad de diferenciar cierto tipo de publicaciones de las estándar
  • Necesidad de cambiar el comportamiento de algún tipo de publicaciones.
  • Quiere personalizar las características de la publicación, el proceso de publicación y los elementos o aplicarles alguna característica especial

Como regla general, debe usar CPT en un sitio de WordPress cuando necesite diferentes tipos de publicaciones con sus características o comportamiento personalizado.

Los tipos de publicaciones personalizadas son diferentes de los tipos de publicaciones predeterminadas, por lo que requieren un tratamiento especial sin tener que sobrescribir las funciones de tipo de publicación predeterminadas. Esta es una gran ventaja cuando necesita diferentes tipos de publicaciones porque puede crear un tipo de publicación personalizado desde cero que cumplirá exactamente con sus requisitos.

Ahora que entendemos mejor qué son y cuándo usarlos, veamos cómo crear tipos de publicaciones personalizadas.

Cómo crear un tipo de publicación personalizada de WordPress mediante programación

En esta sección, le mostraremos cómo crear un tipo de publicación personalizada en WordPress con un ejemplo. Antes de comenzar, asegúrese de hacer una copia de seguridad de su sitio y cree un tema secundario si aún no tiene uno.

En su tablero, vaya a Apariencia > Editor de temas , abra el archivo functions.php del tema secundario en la columna de la derecha y pegue el siguiente script. Registrará un tipo de publicación personalizada llamada películas .

 función QuadLayers_custom_post_type() {
// Establecer etiquetas de interfaz de usuario para el tipo de publicación personalizada
    $etiquetas = matriz(
        'nombre' => _x( 'Películas', 'Nombre general del tipo de publicación', 'escaparate' ),
        'singular_name' => _x( 'Movie', 'Post Type Singular Name', 'storefront' ),
        'menu_name' => __( 'Películas', 'escaparate' ),
        'parent_item_colon' => __( 'Película principal', 'escaparate' ),
        'all_items' => __( 'Todas las películas', 'escaparate' ),
        'ver_elemento' => __( 'Ver película', 'escaparate'),
        'add_new_item' => __( 'Agregar nueva película', 'escaparate' ),
        'add_new' => __( 'Agregar nuevo', 'escaparate' ),
        'edit_item' => __( 'Editar película', 'escaparate'),
        'update_item' => __( 'Actualizar película', 'escaparate' ),
        'search_items' => __( 'Buscar película', 'escaparate' ),
        'not_found' => __( 'No encontrado', 'escaparate' ),
        'not_found_in_trash' => __( 'No encontrado en la Papelera', 'escaparate' ),
    );
// Establecer otras opciones para el tipo de publicación personalizada
    $argumentos = matriz(
        'etiqueta' => __( 'películas', 'escaparate' ),
        'descripción' => __( 'Noticias y reseñas de películas', 'escaparate' ),
        'etiquetas' => $etiquetas,  
        'soporta' => array( 'título', 'editor', 'extracto', 'autor', 'miniatura', 'comentarios', 'revisiones', 'campos personalizados', ),     
        'taxonomías' => array( 'géneros' ),     
        'jerárquico' => falso,
        'público' => verdadero,
        'show_ui' => verdadero,
        'show_in_menu' => verdadero,
        'show_in_nav_menus' => verdadero,
        'show_in_admin_bar' => verdadero,
        'posición_menú' => 5,
        'can_exportar' => verdadero,
        'has_archive' => verdadero,
        'exclude_from_search' => falso,
        'publicly_queryable' => verdadero,
        'capability_type' => 'publicar',
        'show_in_rest' => verdadero, 
    );
    // Registrando su tipo de publicación personalizada
    register_post_type('películas', $argumentos);
}
add_action( 'init', 'QuadLayers_custom_post_type', 0 );

Después de pegar el código, aparecerá una nueva pestaña llamada Películas en su panel de administración de WordPress.
Crear tipo de publicación personalizada programáticamente

Si lo abre, verá que el editor de publicaciones es el mismo que los tipos de publicaciones predeterminados, porque hemos establecido los mismos argumentos para la pantalla del editor de publicaciones. Entonces, ¿cómo sabemos que es el editor de tipo de publicación personalizado? Porque en la URL y el título de la página, puede ver el tipo de publicación Películas.

Agregar tipo de publicación personalizada

Ahora que vio el resultado final, analicemos el código, para que pueda comprender mejor lo que hace cada sección.

Explicación del código

Acabamos de ver cómo crear un tipo de publicación personalizada de WordPress mediante programación. Pero eso es sólo la mitad de lo que tienes que saber. Si desea crear sus propios tipos de publicaciones, debe personalizar el código. Y para eso, debe comprender qué hace cada parte del fragmento.

Usamos el wp_init() para garantizar que nuestra función se ejecute una sola vez: cuando se inicia WordPress. En nuestra función QuadLayers_custom_post_type() , hay tres partes.

1) Etiquetas

Estos son un conjunto de cadenas que el tema usará en diferentes páginas de administración y frontend. Esto se establece en una sola matriz:

$labels = array(
'name' => _x( 'Movies', 'Post Type General Name', 'storefront' ),
);

2) Opciones

Estas son algunas opciones predefinidas que definen el comportamiento y algunas otras características de nuestro tipo de publicación personalizada ( películas ).

Cada opción es una instrucción específica que definirá cómo actuará nuestro tipo de publicación personalizada. Los más relevantes son:

  • 'soportes': define qué componentes se utilizarán en el editor de publicaciones
  • 'taxonomías': puede aplicar una o más categorías existentes o categorías personalizadas a todos los CPT registrados en la función actual
  • ' 'jerárquico' : las publicaciones no pueden tener contenido principal y esto diferenciará el CPT de las páginas. Establezca esto en verdadero si desea publicar una página personalizada en lugar de un tipo de publicación personalizada
  • ' show_in_admin_bar': muestra la pestaña CPT en el panel de administración de WordPress

Para obtener la lista completa de todos los argumentos y su descripción, consulte esta documentación.

3) Registro de tipo de publicación personalizada

La función de WordPress register_post_type() finalmente registrará nuestro nuevo tipo de publicación personalizado y lo configurará para que esté listo para usar.

Ahora que comprende mejor el código, puede comenzar a publicar sus tipos de publicaciones personalizadas. Pero además de publicarlos, querrá mostrar su CPT en algún lugar. Veamos cómo hacer eso.

Cómo mostrar tipos de publicaciones personalizadas en WordPress

Hasta ahora, hemos visto cómo crear un tipo de publicación personalizada mediante programación en WordPress. Después de publicarlo, tienes que decidir dónde lo vas a mostrar.

Hay varias formas de imprimir un CPT en la parte delantera. Puede mostrar una lista completa de tipos de publicaciones personalizadas específicas en otra publicación, página, barra lateral o cualquier otro lugar que desee.

En el siguiente script de muestra, vamos a crear un shortcode personalizado para mostrar todos los tipos de publicaciones personalizadas que creamos usando la función anterior en una nueva página.

El siguiente script creará un shortcode llamado Movies , que imprimirá todas las películas que agreguemos a nuestro CPT en cualquier página donde agreguemos el shortcode.

 add_shortcode('películas', 'QuadLayers_display_cpt_shortcode');
función QuadLayers_display_cpt_shortcode(){
    $args = array( '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();
    $c= el_título( sprintf( '<h2 class="entry-title">', esc_url( get_the_title() ) ), '</h2>').
    '<div class="entry-content">'.
    el contenido().
    '</div>';
mientras tanto;
wp_reset_postdata();
demás:
$c = 'Lo sentimos, no hay publicaciones que coincidan con sus criterios.';
terminara si;
devolver $c;
}

Entonces, si coloca el shortcode en una página:

shortcode para mostrar CTP

Verás el resultado:

tipo de publicación personalizada con shortcode

Conclusión

En resumen, hemos visto que, de forma predeterminada, WordPress incluye algunos tipos de publicaciones, pero puede agregar tipos de publicaciones personalizados según sus requisitos para personalizar su sitio.

En esta guía, le mostramos cómo puede crear un tipo de publicación personalizada de WordPress mediante programación. Analizamos el fragmento y describimos cada sección para que pueda personalizarlo y usarlo en su sitio. Además, hemos visto cómo crear un código abreviado personalizado que le permite mostrar sus tipos de publicaciones personalizadas en cualquier lugar de su sitio.

¿Has intentado crear tipos de publicaciones personalizadas en tu sitio? Háganos saber su experiencia en la sección de comentarios.

Para personalizar otras áreas de su sitio, consulte los siguientes tutoriales:

  • Cómo agregar campos de carga personalizados a WooCommerce
  • Cómo agregar campos personalizados al pago
  • Guía para editar los campos de pago de WooCommerce