¿Cómo reescribir el URI del tipo de publicación personalizada?


16

El sitio en el que estoy trabajando utiliza la siguiente estructura de enlaces permanentes "bonita":

http://example.com/blog/my-special-post

Pero para un tipo de publicación personalizada, a mi cliente le gustaría evitar tener una babosa "bonita":

http://example.com/product/142

¿Cómo se puede usar la ID de publicación en lugar de la babosa para el tipo de publicación personalizada?

Creo que esto podría ser posible usando WP_Rewrite, pero no sé por dónde empezar.

Respuestas:


33

Esto es lo que uso para reescribir URL de tipo de publicación personalizada con la ID de publicación. Necesita una regla de reescritura para traducir las solicitudes de URL, así como un filtro post_type_linkpara devolver las URL 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' );
}

Hola @milo esto me funciona perfectamente ... pero quiero algunos cambios por favor, ¿me puede guiar
Deemi-D-nadeem
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.