301将自定义URL层次结构重定向到WordPress帖子

时间:2015-11-25 作者:Grant

我正在将自定义网站转换为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中的所有内容都按预期工作,没有发现任何问题。

3 个回复
SO网友:jgraup

一个选项是添加URL Rewrite Rules.

Create an API Endpoint in WordPress 是一个很好的教程The Rewrite API: The Basics.

Monkeyman Rewrite Analyzer 是一种测试您所创建内容的好方法。每次更换后,一定要冲洗你的永久链接。

This 也是一个很好的例子,它使用端点重定向到其他地方。

最大的诀窍是将旧站点上每个帖子的ID转换成一个可以在新站点上使用的表单。

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\' );

SO网友:Grant G

我喜欢这些建议。然而,我想到了另一个问题,这意味着我们可能不得不使用CNEWARTI值作为post\\u name值-该网站是韩语的。张贴标题、摘录和内容-全部为韩文。因此,我不认为我们可以使用韩文文章标题作为帖子名称-。com公司/범주/하위 카테고리/포스트-이름 可能会引起问题,对吗?

相关推荐

Redirection problems

请帮助我克服重定向问题。我需要在子域上工作,而不是在主域上工作,但这里两个域是不同的。我所做的是-将所有(website.com)文件复制到另一个子域(demo.websiteA.com),并根据wp配置更改数据库名称。php文件。但每当我尝试打开演示时。网站a。com它重定向到网站。com公司请帮帮我提前感谢