Mass Permalink Changer

时间:2012-08-16 作者:D12Eminem989

我最近将一个站点从Moveable类型转换为WordPress,并注意到每个帖子的永久链接都很短、被截断并且带有下划线。

我想做的是,如果有一个脚本或SQL命令,我可以运行它将每个帖子的permalink批量更改为它通常基于帖子标题生成的默认permalink。

提前感谢!

2 个回复
SO网友:webaware

也许这并不能回答你的问题。。。但也许你可以通过改变你在$slug中的投入来适应它。

试试这个,它应该在帖子上循环并重置slug以匹配帖子名称。对于页面,添加\'post_type\' => \'page\' 到传递给get\\u posts()的数组。

$posts = get_posts(array(\'posts_per_page\' => -1));

foreach ($posts as $post) {
    $slug = sanitize_title(strtolower($post->post_title));
    $slug = wp_unique_post_slug($slug, $post->ID, $post->post_status, $post->post_type, $post->post_parent);

    wp_update_post(array(\'ID\' => $post->ID, \'post_name\' => $slug));
}

SO网友:Clorith

进口商似乎没有完全导入段塞名称,或者有段塞限制,这导致了这种影响。

您可以运行查询来根据文章名称更新所有slug,这也是WordPress在生成初始slug时的默认方法(在DB表*wp\\u posts*中引用为*post\\u name*)。

当然,建议首先清理你的帖子名称(为此,使用sanitize\\u title\\u with\\u破折号()似乎是适当的。

为了回答这个问题,我们创建了一个简短的片段,用于更新所有帖子的slug,可以在https://github.com/Clorith/wp-slug-update 如果你不想开始触及代码方面,你自己。

结束

相关推荐

Page Name and Permalinks

我正在使用WordPress 3.2.1,刚刚在我的网站上添加了一个名为“中心管理”的页面,这反过来又创建了一个永久链接:http://localhost:8888/mysite/centre-management/对于我刚刚创建的页面。之后,我把这个页面弄得一团糟,想重新开始。因此,当我现在创建另一个与上述名称相同的新页面时,即“中心管理”,WordPress现在为我创建一个永久链接:‎http://localhost:8888/mysite/centre-管理-2/这不是我想要的。我希望它显示为:ht