Come riscrivere l'URI del tipo di post personalizzato?


16

Il sito su cui sto lavorando utilizza la seguente struttura "carina" del permalink:

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

Ma per un tipo di post personalizzato il mio cliente vorrebbe evitare di avere una "bella" lumaca:

http://example.com/product/142

Come si può utilizzare l'ID post al posto della lumaca per il tipo di post personalizzato?

Credo che questo potrebbe essere possibile usando WP_Rewrite, ma non so da dove cominciare.

Risposte:


33

Questo è quello che uso per riscrivere gli URL dei tipi di post personalizzati con l'ID post. È necessaria una regola di riscrittura per tradurre le richieste URL e un filtro post_type_linkper restituire gli URL corretti per qualsiasi chiamata 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' );
}

Ciao @milo, questo mi funziona perfettamente ... ma voglio alcune modifiche, per favore, puoi guidarmi
deemi-D-nadeem
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.