重命名当前使用的帖子类型

时间:2012-04-04 作者:crissoca

大家好,我正在研究这个公共主题,之前的开发人员创建了一个名为“blog”的帖子类型。问题是,当您使用相同的slug创建页面时,会产生冲突。

该主题正被多个客户端使用,我试图通过重命名帖子类型来避免这个问题,而不让用户/客户端运行任何问题。

我正在做以下工作:

$theme_executed = false;
if(!$theme_executed) {
 theme_blog_news();
 $theme_executed = true;
}

function theme_blog_news(){
  $theme_sql= mysql_query("UPDATE  wp_posts SET  post_type =  \'news\' WHERE  post_type = \'blog\'");
  if (!$theme_sql) {
    die(\'Invalid query: \' . mysql_error());
  }
}
这很管用,但我正在寻找一种最佳做法或一种更地道的方式。

谢谢

2 个回复
SO网友:Ashfame

你的方向是对的。在执行类似操作时,请确保查看每个可能需要更改的地方,因为您不希望数据不一致。改进此过程的一些建议:

不要硬编码WordPress表名($wpdb->posts) 在查询中。如果安装在其wp配置中设置了自定义表前缀,则此操作无效。php

保存ur插件的版本号,编写基于版本的升级函数,然后可以单独调用或批量调用它们,检查需要运行多少个升级函数。每次更改这样的内容时,都会生成一个函数,如果客户端正在从X版本升级,则会调用该函数;如果客户端很久没有更新,则可以成批链接升级函数。

SO网友:mrwweb

诚然,我从未尝试过这一点,但法典对register_post_type() 是:

创建或修改帖子类型。

您是否尝试过使用所需的新设置重新注册帖子类型,然后确保其优先级低于首先注册帖子类型的函数?它可能只是覆盖设置。(很抱歉,如果您已经尝试了此操作。)

结束

相关推荐