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

11

El sitio en el que estoy trabajando utiliza la siguiente estructura "bonita" de enlace permanente:

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 la publicación en lugar de la barra para el tipo de publicación personalizada?

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

    
pregunta Lea Hayes 12.11.2011 - 01:13

1 respuesta

28

Esto es lo que uso para volver a escribir las URL de tipo de publicación personalizadas con la ID de publicación. Necesita una regla de reescritura para traducir las solicitudes de URL, así como un filtro en post_type_link para 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' );
}
    
respondido por el Milo 12.11.2011 - 03:19

Lea otras preguntas en las etiquetas