En este tutorial veremos cómo indicarle a WordPress que queremos usar una página de archivo para nuestro CPT y cómo personalizar la URL de dicha página.
Custom Post Types en WordPress
Los Custom Post Types o CPTs son tipos de posts o contenido personalizado que podemos crear en WordPress y que pueden convivir con los tipos que vienen por defecto, como las Entradas, las Páginas o los Medios.
En este tutorial vamos a partir de un CPT ya creado al que le activaremos la opción de usar páginas de archivo para poder ver los resultados en forma de listado como lo hacemos con las entradas del blog. Posteriormente modificaremos la URL de dicha página de archivo para personalizarla según nuestras necesidades.
Si os interesa el tema podéis visitar el tutorial Custom Post Types en WordPress y el curso de WordPress avanzado, donde se explica con más detalle qué son los Custom Post Types, cuándo crearlos y cómo hacerlo paso a paso sin usar plugins. Dicho todo esto, ¡vamos a empezar!.
Activar el uso de página de archivo para un CPT
El primer paso será indicarle a WordPress que queremos usar una página de archivo para nuestro tipo de entrada personalizado. Si ya tenéis habilitada esta opción podéis pasar al siguiente punto, en otro caso será necesario llevar a cabo este paso previo ya que si no lo indicamos no podremos listar el contenido de nuestro Custom Post Type.
Para activar esta opción vamos a buscar el lugar donde introdujimos el código con el que creamos el CPT para poder modificarlo. Este código puede añadirse en varios sitios, en un plugin nuevo, en un plugin de utilidades o como snippet a través de Code Snippets. No es recomendable añadirlo al archivo functions.php de nuestro tema por lo que si lo tenéis ahí podéis aprovechar para cambiarlo. En tal caso os será de ayuda el tutorial sobre añadir código a WordPress.
Supongamos que tenemos un código similar al siguiente. En él se crea un CPT nuevo llamado "cursos", en plural, el cual se registra como "curso" en singular para que las URL de los cursos individuales sean de la forma dominio/curso/nombre-curso:
function bld_crear_cpt_curso() { $args = array( 'public' => true, 'label' => 'Cursos' ); register_post_type( 'curso', $args ); } add_action( 'init', 'bld_crear_cpt_curso' );
Pues bien, para indicar que nuestro CPT usará una página de archivo, tenemos que añadir la siguiente línea a nuestra función o bien modificar el valor de "has_archive" a "true" si ya aparece en nuestro código:
function bld_crear_cpt_curso() { $args = array( 'public' => true, 'label' => 'Cursos', 'has_archive' => true );
Después guardaremos y a continuación tendremos que ir a "Ajustes/Enlaces permanentes" y, sin necesidad de realizar ninguna modificación más, pulsar sobre "Guardar cambios".

Página de archivo CPT WordPress
¡Y ahora sí! Si entramos en dominio/curso/ veremos que efectivamente aparecen todos nuestros cursos listados, así que sólo queda personalizar su URL. Vamos a ver cómo hacerlo.
Personalizar URL de la página de archivo de CPT
Una vez hemos indicado que nuestro Custom Post Type tiene página de archivo, vamos a personalizar el "slug" para su URL. Como hemos visto, la URL de la página individual de un curso tiene esta forma dominio/curso/nombre-curso.
La palabra "curso" aparece en singular ya que es el valor con el que hemos registrado nuestro CPT. Lo mismo ocurre con la página de archivo que lista los cursos disponibles y que se encuentra en esta URL: dominio/curso/.
¿Cómo podemos cambiar la dirección entonces? Estaría muy bien que las páginas individuales continuaran con la forma singular y que la página de archivo de cursos estuviera en plural: dominio/cursos.
Para personalizar el slug y conseguir que nuestra página de archivo esté accesible desde esta nueva URL tenemos que modificar el código que hemos añadido en el punto anterior. Simplemente cambiaremos el valor de configuración de "has_archive" y en lugar de "true" indicaremos el nuevo slug:
function bld_crear_cpt_curso() { $args = array( 'public' => true, 'label' => 'Cursos', 'has_archive' => 'cursos' );
Guardamos, y de nuevo nos vamos a "Ajustes/Enlaces permanentes" y, sin realizar ninguna modificación, volvemos a guardar los cambios. Ahora accedemos a la nueva URL y ¡listo!.

URL personalizada página de archivo CPT
Con estos sencillos pasos ya tendríamos la URL de la página de archivo del Custom Post Type acorde a nuestras preferencias. Además si queréis podréis crear vuestra propia página de archivo y maquetarla según os interese, ya que en este caso se está usando la que viene por defecto en nuestro theme.
Resumen y conclusión
Al definir un Custom Post Type en WordPress debemos indicar expresamente si queremos usar una página de archivo, en otro caso no la tendremos disponible. Para mostrarla tendremos que añadir una línea de código específica a los argumentos que se le pasan a WordPress al registrar nuestro CPT, guardar, y después ir a la opción de "Enlaces permanentes" y volver a guardar.
Para personalizar la URL de dicha página, simplemente tendríamos que modificar levemente la línea que introdujimos en el paso anterior tal y como hemos visto en el tutorial y guardar los enlaces permanentes.
¡Y ya lo tendríamos! Si queréis aprender más sobre Custom Post Type, además de la segunda clase del curso de WordPress avanzado, tenemos el curso de desarrollo de plugins y el curso de WordPress child themes. Y ya lo sabéis, en boluda.com tenéis más de 5718 vídeo tutoriales disponibles. Si os interesa ¡os esperamos dentro! :)