我正在将自定义网站转换为WordPress网站。不幸的是,自定义站点有一个完全不同的URL结构,我们希望为其设置301重定向。该网站每月接待超过30万名独立访客,因此我们希望将流量损失降至最低,尤其是来自全球主要新闻网站的链接文章。
因此,URL的示例如下:-
.com/front/news/view.asp?cate=A06&subcate=D006&cNewsArti=201403402
共有大约30个类别(包括父类和子类),但接近11000篇文章。
我想我们可以使用cNewsArti值作为“post\\u slug”,它可以很容易地导入到WP中。然而,这仍然会给字符串的其余部分留下困难,因为我们可能会使用以下WP permalink:-
/%category%/%postname%/
我的想法是,这将产生:-
.com/categoryname/subcatname/201403402
那么,我怎样才能完成剩下的重定向呢?如您所知,为11000篇文章创建自定义301可能是不可能的。
有什么想法吗?
提前感谢!
编辑:-数据已经导入到WordPress数据库中,一切正常-我们将所有帖子分配到一组随机类别,以确保WordPress中的所有内容都按预期工作,没有发现任何问题。
SO网友:Milo
与其在新的URL结构中使用任何旧数据,不如保存旧数据cNewsArti
每个帖子的帖子元中的值,以便您可以根据该值查找这些帖子。
然后你就可以上钩了init
, 检查是否cNewsArti
,并在帖子元数据中查询具有该匹配值的帖子。如果找到帖子,请执行301重定向到其新的永久链接。
function wpd209890_old_url_redirect(){
if( isset( $_GET[\'cNewsArti\'] ) ){
$query = new WP_Query(
array(
\'meta_query\' => array(
array(
\'key\' => \'cNewsArti\',
\'value\' => $_GET[\'cNewsArti\']
)
)
)
);
if( isset( $query->post ) ){
wp_redirect( get_permalink( $query->post->ID ), 301 );
exit;
}
}
}
add_action( \'init\', \'wpd209890_old_url_redirect\' );