重命名自定义帖子类型的最佳方法是什么?
如何重命名分类法?
#1 楼
重命名帖子的SQL查询:UPDATE `wp_posts` SET `post_type` = '<new post type name>' WHERE `post_type` = '<old post type name>';
重命名分类的SQL查询:
UPDATE `wp_term_taxonomy` SET `taxonomy` = '<new taxonomy name>' WHERE `taxonomy` = '<old taxonomy name>';
这应该采取照顾所有数据库区域。只需记住在帖子类型或分类法注册的代码中匹配新名称即可。据我所知,这尚未在任何插件中处理。
评论
很好的答案,正是我所需要的。这是一个提示,以防其他人遇到与我相同的问题:运行查询并更新代码后,一切基本正常,但是当我尝试转到单个内容项的页面时,出现404错误。我认为某些永久链接缓存需要重置;我转到工具>永久链接,然后单击保存,然后详细页面开始工作。
–安迪·吉斯勒(Andy Giesler)
2011年3月11日20:06
当我这样做时,我也更新了Guid字段。如@AndyGiesler所述,这可能有助于使其不必重新生成永久链接。只需在UPDATE语句中包括以下内容:guid = REPLACE(guid,'<旧帖子类型名称>','<新帖子类型名称>')
– rinogo
13年1月1日在20:44
只是向rinogo的评论添加更多信息,这是更新GUID的一种更安全的方法:UPDATE wp_posts SET guid = REPLACE(guid,'post_type = <旧帖子类型名称>','post_type = <新帖子类型名称>');
–大卫
2014年2月13日下午5:49
只是要注意,在多站点上运行时,您需要注意表名
–morse
2014年5月21日在20:02
#2 楼
@Derek Perkins,您好:一般来说,@ John P Bloch的回答很明确,但有警告。插件,甚至自定义主题都可以并且可以存储帖子类型信息,因此,为了确保您不会破坏数据,您需要确保插件和主题不存储帖子类型,或者如果您这样做,则更新数据也一样
您能告诉我们您使用的是什么插件吗?
评论
那是个很好的观点。我正在建立主题自定义,因此我绝对必须仔细检查并更改我的代码。我没有任何存储自定义帖子类型信息的插件。
–德里克·帕金斯(Derek Perkins)
2010年9月1日下午5:23
这是个好的观点。我使用的是“高级自定义字段”,对于该帖子所附的每个字段组,您都必须手动将其重置为新的CPT名称。在那之后,它工作正常。
–克里斯·雷(Chris Rae)
2015年12月11日在20:51
#3 楼
如果您不想自己手动执行SQL查询,则可以使用几个插件:我已经成功地将“转换帖子类型”用于批量更改帖子。
要转换单个帖子,则帖子类型切换器是一个更好的选择。
评论
感谢您发布这些链接。我自己运行SQL查询很好,但是对于那些在此发布中遇到的其他人,这些查询肯定会派上用场。
–德里克·帕金斯(Derek Perkins)
2010年9月1日下午5:24
这似乎是转换帖子类型,而不是重命名它们
–vladkras
15年8月15日在12:49
评论
同样,有关自定义.htaccess重写规则的后续问题。会有很多剩余规则阻塞我的数据库吗?我尚未启动该站点,因此不需要重定向任何旧链接。