将 WordPress URL 批量转换为新 URL 结构的最佳方法?
Best Method to Mass Convert WordPress URLs to new URL structure?
我计划将我的 30k+ posts WordPress 站点迁移到我构建的自定义站点。我的主要争论点之一是 SEO,如果我不想在 [=37= 上破坏我的 SEO,我很确定我需要正确转发我所有的 post URL ](这对我来说非常好)。
当前结构:
https://ygoprodeck.com/xyz-rank-up-shark/
新结构:https://ygoprodeck.com/deck/xyz-rank-up-shark
这部分很简单,因为我可以在新数据库中使用 WordPress 的 post_name
列构建新的 URLs,然后只需将旧的 URLs 重定向到新的 /deck/
URLs。
但是,如何让转发器区分 post 和页面?
举个例子:
当前结构:https://ygoprodeck.com/ritual-summoning-the-underdogs-greatest-hits/
新结构:https://ygoprodeck.com/article/ritual-summoning-the-underdogs-greatest-hits/
我不完全确定我的转发如何知道重定向到 /deck/
或重定向到 /article/
?
我能想到的唯一解决方案是手动重定向每个 30k+ URL,这对我来说似乎是一项艰巨的任务。
像这样:
$file = wp_get_upload_dir() . 'rules.txt';
$open = fopen( $file, "a" );
args = array('post_type' => 'post', 'posts_per_page' => -1 );
$posts = new WP_Query($args);
if( $posts->have_posts() ){
while( $posts->have_posts() ){
$posts->the_post();
global $post;
$permalink = get_permalink($post->ID);
//Assuming each post has only 1 category
$category = get_the_category($post->ID)[0]->name;
$write = fputs( $open, 'Redirect 301 ' . $permalink . ' /' . $category . $permalink. '\n' );
}
flocse( $open );
wp_reset_query();
}
我计划将我的 30k+ posts WordPress 站点迁移到我构建的自定义站点。我的主要争论点之一是 SEO,如果我不想在 [=37= 上破坏我的 SEO,我很确定我需要正确转发我所有的 post URL ](这对我来说非常好)。
当前结构: https://ygoprodeck.com/xyz-rank-up-shark/
新结构:https://ygoprodeck.com/deck/xyz-rank-up-shark
这部分很简单,因为我可以在新数据库中使用 WordPress 的 post_name
列构建新的 URLs,然后只需将旧的 URLs 重定向到新的 /deck/
URLs。
但是,如何让转发器区分 post 和页面?
举个例子:
当前结构:https://ygoprodeck.com/ritual-summoning-the-underdogs-greatest-hits/
新结构:https://ygoprodeck.com/article/ritual-summoning-the-underdogs-greatest-hits/
我不完全确定我的转发如何知道重定向到 /deck/
或重定向到 /article/
?
我能想到的唯一解决方案是手动重定向每个 30k+ URL,这对我来说似乎是一项艰巨的任务。
像这样:
$file = wp_get_upload_dir() . 'rules.txt';
$open = fopen( $file, "a" );
args = array('post_type' => 'post', 'posts_per_page' => -1 );
$posts = new WP_Query($args);
if( $posts->have_posts() ){
while( $posts->have_posts() ){
$posts->the_post();
global $post;
$permalink = get_permalink($post->ID);
//Assuming each post has only 1 category
$category = get_the_category($post->ID)[0]->name;
$write = fputs( $open, 'Redirect 301 ' . $permalink . ' /' . $category . $permalink. '\n' );
}
flocse( $open );
wp_reset_query();
}