你不想要一个简单的SQL
解决方案post_name
用于生成永久链接。如果您只是将标题复制到名称(slug),那么URL中就会有空格和标点符号,这将是一个问题。这将导致断开链接。此外,您最终可能会得到两篇具有相同永久链接的帖子,这将导致不可预测的行为。
具有SQL
应该可以像WordPress那样,用破折号替换空格,去掉标点符号,但在纯SQL中解决重复的永久链接问题很困难。让WordPress来修复它。将以下内容放入functions.php
并在解决问题后将其删除。
function fix_post_slugs() {
$posts = new WP_Query(array(\'post_type\'=>\'book\'));
if (empty($posts->posts)) return false;
foreach ($posts->posts as $p) {
wp_update_post((array)$p);
}
}
fix_post_slugs();
您所做的是抓取一个post对象并将其传递回
wp_update_post
作为数组。所有的制衡通常都是为了解决像鼻涕虫这样的问题。当然,您必须调整post类型名称以适合您的安装。
经过测试,但几乎没有。在使用真实数据信任它之前,我会在虚拟数据库上运行它。我相当肯定这不会造成损害,但偏执狂是一种美德。首先进行备份。