¿Cómo reescribir la URI de un tipo de entrada personalizada?
12 nov 2011, 02:13:52
Vistas: 29.3K
Votos: 17
El sitio en el que estoy trabajando utiliza la siguiente estructura de enlaces permanentes "amigables":
http://example.com/blog/mi-entrada-especial
Pero para un tipo de entrada personalizada mi cliente desea evitar tener un slug "amigable":
http://example.com/product/142
¿Cómo se puede usar el ID de la entrada en lugar del slug para el tipo de entrada personalizada?
Creo que esto podría ser posible usando WP_Rewrite, pero no sé por dónde empezar.
Todas las respuestas a la pregunta
1
1
Esto es lo que uso para reescribir las URLs de tipos de post personalizados con el ID del post. Necesitas una regla de reescritura para traducir las solicitudes de URL, así como un filtro en post_type_link
para devolver las URLs correctas para cualquier llamada a get_post_permalink()
:
add_filter('post_type_link', 'wpse33551_post_type_link', 1, 3);
function wpse33551_post_type_link( $link, $post = 0 ){
if ( $post->post_type == 'product' ){
return home_url( 'product/' . $post->ID );
} else {
return $link;
}
}
add_action( 'init', 'wpse33551_rewrites_init' );
function wpse33551_rewrites_init(){
add_rewrite_rule(
'product/([0-9]+)?$',
'index.php?post_type=product&p=$matches[1]',
'top' );
}

Milo
78.9K
12 nov 2011 04:19:47
Preguntas relacionadas
4
respuestas
1
respuestas
2
respuestas