我认为你只需要改变一下方式get_permalink
为cpt创建url,忽略父级。
您可以将过滤器添加到\'post_type_link\'
钩住然后重新生成产品cpt的永久对齐在core中以相同的方式完成,只需忽略父级:
add_filter(\'post_type_link\', \'reset_light_link\', 999, 3);
function reset_light_link( $post_link, $post, $leavename ) {
if ( $post->post_type != \'light\' || in_array($post->post_status, array(\'draft\',\'pending\',\'auto-draft\')) ) return $post_link;
global $wp_rewrite;
$post_link = $wp_rewrite->get_extra_permastruct($post->post_type);
if ( ! $leavename ) $post_link = str_replace("%$post->post_type%", $post->post_name, $post_link);
return home_url( user_trailingslashit($post_link) );
}
的代码
reset_light_link
函数只是
get_post_permalink
, 在core中用于生成permalink的函数(并激发
\'post_type_link\'
挂钩)何时
get_permalink
为cpt调用。
Here 该函数的代码。