仅将URL中的任何类别重定向到ID和帖子名称-数百个受影响的页面

时间:2018-04-16 作者:Paulwv

我有许多文章链接从外部网站没有类别。他们最终找到了一个404。很久以前进行了一次小型迁移,刚刚注意到404。

众多示例之一:

错误:摔跤视图。com/20060 joey mercury及其wwe状态更新

更正:摔跤视图。com/wwe-news/20060乔伊·墨丘利及其wwe状态的最新信息

我想当人们点击一个没有类别的链接时,自动重定向到ID和帖子名。因为每个帖子都有一个唯一的ID。这可以通过htaccess或函数实现吗。php?我无法手动执行301重定向,我有1000多个链接受此影响。

谢谢

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

在这种情况下,我建议您忘记htaccess。

在您的功能中。php文件添加:

add_action( \'template_redirect\', \'check_missing_urls\' );
function check_missing_urls() {
    if ( ! is_404() ) {
       return;
    }
    $has_match = preg_match( \'/\\/?(\\d+)/\', $_SERVER[\'REQUEST_URI\'], $match );
    if ( ! $has_match ) {
       return;
    }
    $new_url = get_permalink( $match[1] );
    if ( ! $new_url ) {
       return;
    }
    wp_redirect( $new_url, 301 );
    wp_die();
}
请注意,这是一个未经测试的代码,使用它作为一个非常基本和粗略的想法来完成您所需要的。

此外,我建议您在测试期间使用302而不是301。

结束

相关推荐

Broken page redirect

我尝试了一个插件。它有一个设置页面,我需要在其中选择我想要显示插件内容的页面。我选择了我的一个页面-mywebsite。并测试了插件的工作原理。然后我决定删除这个插件。现在如果我打开url我的网站。com/page1/-我被重定向到主页。我尝试手动更改此页面的URL,效果很好。但是我怎样才能得到我的网站。com/第1页/要使用?