在一次快速测试中,我惊讶地发现这是开箱即用的。也就是说,子帖子的规范URI在路径中仍然有父帖子,但子帖子在没有父帖子的情况下也能正常工作(不会404,不会重定向)。因此,这应该只是一个过滤问题post_type_link
按你的要求去做!下面的代码应该可以做到这一点:
function wpse_101072_flatten_hierarchies( $post_link, $post ) {
if ( \'service\' != $post->post_type )
return $post_link;
$uri = \'\';
foreach ( $post->ancestors as $parent ) {
$uri = get_post( $parent )->post_name . "/" . $uri;
}
return str_replace( $uri, \'\', $post_link );
}
add_filter( \'post_type_link\', \'wpse_101072_flatten_hierarchies\', 10, 2 );