Cum se rescrie URI-ul pentru un tip de postare personalizat?

12 nov. 2011, 02:13:52
Vizualizări: 29.3K
Voturi: 17

Site-ul la care lucrez folosește următoarea structură de permalink "frumoasă":

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

Dar pentru un tip de postare personalizat, clientul meu ar dori să evite folosirea unui slug "frumos":

http://example.com/product/142

Cum poate fi folosit ID-ul postării în locul slug-ului pentru tipul de postare personalizat?

Cred că acest lucru ar putea fi posibil folosind WP_Rewrite, dar nu știu de unde să încep.

0
Toate răspunsurile la întrebare 1
1
37

Aceasta este soluția pe care o folosesc pentru a rescrie URL-urile unui tip de postare personalizat cu ID-ul postării. Ai nevoie de o regulă de rescriere (rewrite rule) pentru a traduce cererile de URL, precum și de un filtru pe post_type_link pentru a returna URL-urile corecte pentru orice apel către 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' );
}
12 nov. 2011 04:19:47
Comentarii

Salut @milo, acest lucru funcționează perfect pentru mine... dar doresc să fac câteva modificări, te poți să mă ghidezi?

deemi-D-nadeem deemi-D-nadeem
13 mar. 2015 07:45:42