更改帖子类型的名称而不会丢失帖子

时间:2013-07-16 04:41:23

标签: mysql wordpress custom-post-type

我创建了一个为项目部分使用自定义帖子类型的网站。

我需要将帖子类型从“项目”更改为“画廊”,但由于我已经上传了一堆项目,我想知道如何以尽可能少的麻烦来做这件事(我不想重新做 - 上传所有图像和文字等)

我找到一些文章告诉我做一个SQL查询来重命名帖子

UPDATE  `wp_posts` 
    SET  `post_type` =  '<new post type name>' 
    WHERE  `post_type` = '<old post type name>';

这是分类法

UPDATE  `wp_term_taxonomy` 
    SET  `taxonomy` =  '<new taxonomy name>' 
    WHERE  `taxonomy` = '<old taxonomy name>';

我只是不知道我应该用这个代码做什么。如果它是SQL,我是在php文件中运行它还是有某种“终端”可以在我的网站的WP仪表板或cPanel中找到?

以下是我创建帖子类型的方式(不确定这是否有帮助)

function create_my_post_types() {
    //projects 
    register_post_type(
      'Projects', array('label' => 'Projects','description' => '','public' => true,'show_ui' => true,'show_in_menu' => true, 'menu_position' => 8,'capability_type' => 'post','hierarchical' => false,'rewrite' => array('slug' => '','with_front' => '0'),'query_var' => true,'exclude_from_search' => false,'supports' => array('title','editor','thumbnail'),'taxonomies' => array('category',),'labels' => array (
      'name' => 'Projects',
      'singular_name' => 'Project',
      'menu_name' => 'Projects',
      'add_new' => 'Add New Project',
      'add_new_item' => 'Add New Project',
      'edit' => 'Edit',
      'edit_item' => 'Edit Project',
      'new_item' => 'New Project',
      'view' => 'View Project',
      'view_item' => 'View Project',
      'search_items' => 'Search Projects',
      'not_found' => 'No Projects Found',
      'not_found_in_trash' => 'No Projects Found in Trash',
      'parent' => 'Parent Projects',
    ),) );  

} // end create_my_post_types

2 个答案:

答案 0 :(得分:2)

最好直接使用插件:

  

Convert Post Types

     

这是一个实用程序,用于将大量帖子或页面转换为自定义帖子类型(反之亦然)。您可以将转化限制为单个类别中的帖子或特定页面的子项。您还可以指定新的分类术语,这些术语将添加到帖子的现有术语中。

所有转换过程都在函数bulk_convert_posts()中进行,使用核心函数wp_update_postwp_set_post_terms。 IMO,您应该使用WordPress函数进行转换,在 MySQL命令之前terms函数中发生了相当多的步骤。

执行数据库备份,然后再继续执行此类操作。

答案 1 :(得分:1)

如果您有CPanel访问权限,则可以查找PHPMyAdmin并在那里运行SQL代码。

  1. 转到PHPMyAdmin。

  2. 从左侧选择您的wordpress数据库。

  3. 推荐:首先备份数据库,方法是转到顶部的导出标签并快速导出。

  4. 从顶部标签中选择“SQL”。

  5. 在巨大的textarea中复制SQL查询,然后单击Go。

  6. 希望它有效!