En un artículo anterior habíamos visto cómo crear un Custom Post Type en WordPress, directamente a través de código, sin embargo la creación del CPT tiene por defecto un alias o slug como parte de su url, en este artículo veremos cómo quitar ese slug de la url.
Generalidades
Tomaremos como ejemplo la creación de un CPT llamado recetas, además nos aseguraremos que este CPT ya se muestre correctamente en el front-end del sitio.
Resultado Final
Al final queremos obtener algo similar a la siguiente imagen

Modificando la creación del CPT
Al crear el CPT habíamos establecido algunos valores para el rewrite, sin embargo ahora lo asignaremos directamente a false
'rewrite' => false,
Código para urls amigables del Custom Post Type
En el siguiente código asumimos que el CPT es: “recetas_post_type” , puedes cambiar este valor por el nombre con el que registraste tu CPT.
// Agregamos la condición de rewrite sin considerar el texto del slug del CPT
function custom_post_type_rewrites() {
add_rewrite_rule( '([^/]+)/?$', 'index.php?recetas_post_type=$matches[1]');
}
add_action( 'init', 'custom_post_type_rewrites' );
// Establecemos URLs amigables
function custom_post_type_permalinks( $post_link, $post, $leavename ) {
if ( isset( $post->post_type ) && 'recetas_post_type' == $post->post_type ) {
$post_link = home_url( $post->post_name );
}
return $post_link;
}
add_filter( 'post_type_link', 'custom_post_type_permalinks', 10, 3 );
Conclusión
Actualmente WorPress no ofrece una solución simple para quitar el slug de un CPT de la url, en este artículo hemos aprendido cómo realizar esto directamente a través de código.
¿Aún con dudas?, en el siguiente video detallamos los puntos anteriores.
Hay alguna manera de mostrar la categoria a la que pertenece? Dejarlo en https://dominio.com/category/post-name?
Hola, puedes usar una estructura de url personalizada desde Ajustes > Enlaces permanentes, puedes probar con: /%category%/%postname%/
Hola.A mí me da un erro 404 cuando ya esta amigable
Hola, asegúrate de guardar nuevamente en la pantalla de enlaces permanentes.
Hola Jon! a mi me pasa lo mismo, aún habiendo guardado la configuración de enlaces permanentes va a la 404.
Otro más por aquí que ha hecho todos los pasos y me sigue dando error 404…
Hola, prueba realizar este artículo relacionado y verifica si te sucede lo mismo: https://decodecms.com/agregar-el-slug-blog-en-las-urls-de-las-entradas-de-wordpress/
Buenas! Yo tampoco soy capaz de que funcione. Lo he intentado de varias maneras y tras guardar varias veces los enlaces permanentes sigue dando error 404…