我为自定义帖子类型重写了以下url:
add_rewrite_rule(
\'event/([0-9]+)\',
\'index.php?post_type=event&p=$matches[1]\',
\'top\' );
由于网站结构发生变化,我将从
/event/id
到
/workshop/event/id
如下所示:
add_rewrite_rule(
\'workshop/event/([0-9]+)\',
\'index.php?post_type=event&p=$matches[1]\',
\'top\' );
如何从wordpress插件中返回原始url方案上的HTTP 301?
最合适的回答,由SO网友:fischi 整理而成
一个简单的方法是保持两个重写规则都处于活动状态(目前)。
在…上single-event.php
您甚至在调用之前就检查URLwp_header()
.
如果URL不包含基本“workshop”,请添加wp_redirect()
:
wp_redirect( get_permalink( get_the_ID() ) );
这样你就应该准备好了。如果你不喜欢
wp_redirect()
, 当然,您可以使用PHP修改标题信息。
我知道这不是插件本身。如果您真的依赖于插件,那么可以通过挂接早期操作来执行相同的方法。