0

我使用 21 安装了一个干净的 WordPress,没有插件或其他修改。该博客包含大约 800 篇带有相关标签和类别的帖子。

我想将所有这些帖子移动到自定义帖子类型。通过将以下代码添加到我的functions.php,我的博客现在已经安装了自定义帖子类型并且可以完美运行。

//Add custom post type
add_action( 'init', 'create_en_post_type' );
    function create_en_post_type() {
        register_post_type( 'en_post',  array(
            'labels' => array(
                'name' => __( 'English Posts' ),
                'singular_name' => __( 'English Post' )
            ),
            'public' => true,
            'menu_position' => 5,
            'rewrite' => array('slug' => 'en'),
            'supports' => array(
                'title', 
                'editor', 
                'author', 
                'excerpt', 
                'comments', 
                'custom-fields'
            )
        ));
    }

//Add belonging custom taxonomy
add_action( 'init', 'build_taxonomies', 0 ); 
    function build_taxonomies() { 
    register_taxonomy( 'english_categories', 'en_post', array( 'hierarchical' => true, 'label' => 'English Categories', 'query_var' => true, 'rewrite' => true ) );
    register_taxonomy( 'english_tags', 'en_post', array( 'hierarchical' => false, 'label' => 'English Tags', 'query_var' => true, 'rewrite' => true ) );
    }

现在我需要的只是将常规帖子类型更改为我的自定义帖子类型。我已经设法使用插件Convert Post Types移动了帖子,但我的分类法没有被转换。

我意识到我可以创建类似的自定义类别并将自定义帖子分配给它们,但是标签呢?如何转换这些(自动,1200 个标签)?

我试过在数据库中手动弄乱,但我不能让它工作。

4

1 回答 1

1

您应该更改数据库中的 ID,仔细查看 phpmyadmin

  • wp_term_taxonomy
  • wp_terms
  • wp_term_relationships

在术语表中,您会发现 term_taxonomy
中新旧分类的 id 将所有旧分类替换term_id为新分类。

SQL:

UPDATE `wp_term_relationships` SET `term_id` = REPLACE(`term_id`, /*old id*/, /*new id*/);

开始前请做好备份

于 2012-04-19T18:19:39.690 回答