如何将帖子标题复制到phpmyadmin中的帖子插件中

时间:2013-04-22 作者:sebastienb

我刚刚在一个网站上将1000篇帖子导入到一个自定义帖子类型中,所有的slug都是空白的。我正在使用的导入插件有问题。我的SQL很弱:-/知道我需要做什么,但不知道该由谁编写查询。

I need help writing a query to run in phpmyadmin to copy post_title to post_name where post_type is people.

谢谢你的帮助

2 个回复
SO网友:s_ha_dum

你不想要一个简单的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类型名称以适合您的安装。

经过测试,但几乎没有。在使用真实数据信任它之前,我会在虚拟数据库上运行它。我相当肯定这不会造成损害,但偏执狂是一种美德。首先进行备份。

SO网友:sebastienb

我害怕尝试该功能,并从一位开发人员朋友那里找到了答案。我用了它,它起了作用。谢谢

update wp_posts set post_name = post_title where post_type=\'children\'

结束

相关推荐

修复YARPP插件全文MySQL索引

我刚刚发现,另一个相关帖子插件(YARPP)在wp Posts表上使用全文索引,这大大降低了拥有大量帖子的网站的速度。我可以删除插件吗,还是必须清除这些索引的wp posts表才能解决问题?