Isso é o que eu uso para reescrever URLs de tipo de postagem personalizada com o ID do post. Você precisa de uma regra de reconfiguração para traduzir solicitações de URL, bem como um filtro em post_type_link
para retornar as URLs corretas para todas as chamadas para 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' );
}