是否将旧URL重写方案转发到新方案?

时间:2014-03-04 作者:He Shiming

我为自定义帖子类型重写了以下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?

1 个回复
最合适的回答,由SO网友:fischi 整理而成

一个简单的方法是保持两个重写规则都处于活动状态(目前)。

在…上single-event.php 您甚至在调用之前就检查URLwp_header().

如果URL不包含基本“workshop”,请添加wp_redirect():

wp_redirect( get_permalink( get_the_ID() ) );
这样你就应该准备好了。如果你不喜欢wp_redirect(), 当然,您可以使用PHP修改标题信息。

我知道这不是插件本身。如果您真的依赖于插件,那么可以通过挂接早期操作来执行相同的方法。

结束

相关推荐

Advanced permalinks structure

我想得到这个:mysite.com/category/tag/ 示例:mysite.com/news/sports/ 新闻是一个类别,体育是一个标签我该怎么做?谢谢