您希望从url中完全删除post类型的slug。这记录在this answer. 请记住,在对post URL进行任何更改后,您应该重新保存永久链接结构,以使更改完全生效。
Edit:您还可以通过以下方式从旧位置(使用slug)重定向:
function na_redirect_slug_requests() {
$post = get_queried_object();
// If our custom-post-type
if ( ! empty( $post->post_type ) && \'events\' === $post->post_type ) {
$url = get_permalink( $post );
// And the custom-post\'s url doesn\'t match the one we\'re looking at...
if ( false === strpos( $url, $_SERVER[\'REQUEST_URI\'] ) ) {
// Then let\'s redirect.
wp_safe_redirect( $url, 301 );
exit;
}
}
}
add_action( \'template_redirect\', \'na_redirect_slug_requests\', 10, 50 );
只需记住用自定义post类型的slug替换“events”。