我认为唯一(最简单)的解决办法是改变permastruct
在注册自定义帖子类型后,将其添加到永久链接结构中。
因此(在parmalinks设置中)将permalink结构设置为:/my-magic-word/%postname%/
然后手动修改自定义帖子类型的permastructs。
可以这样做(将其添加到functions.php文件):
function my_init() {
global $wp_rewrite;
// Let\'s assume you register your CPT Books in here
$args = array( \'public\' => true, \'label\' => \'Books\' );
register_post_type( \'book\', $args );
// after registering your CPT, you have to change it\'s permastruct
$wp_rewrite->extra_permastructs[\'book\'][\'struct\'] = "book/%book%"; // it\'s without \'my-magic-word\' - you should do this for every CPT that should not have \'my-magic-word\' in url
}
add_action(\'init\', \'my_init\');
然后转到永久链接设置并保存它们以刷新重写规则。
附:我想你可以试着用with_front
param,但我不确定它是否会比这个解决方案更容易(或者甚至可以工作)。