Wie URI des benutzerdefinierten Beitragstyps neu schreiben?

Die Site, an der ich arbeite, verwendet die folgende “hübsche” Permalink-Struktur:

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

Aber für einen benutzerdefinierten Posttyp möchte mein Client vermeiden, einen “hübschen” Slug zu haben:

 http://example.com/product/142 

Wie kann die Post-ID anstelle des Slugs für den benutzerdefinierten Post-Typ verwendet werden?

Ich glaube, dass dies mit WP_Rewrite möglich ist, aber ich weiß nicht, wo ich anfangen soll.

Solutions Collecting From Web of "Wie URI des benutzerdefinierten Beitragstyps neu schreiben?"

Dies ist, was ich benutze, um benutzerdefinierte Post-Typ-URLs mit der Post-ID neu zu schreiben. Sie benötigen eine Rewrite-Regel, um URL-Anfragen zu übersetzen, sowie einen Filter für post_type_link , um die korrekten URLs für alle Aufrufe von 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' ); }