0

プラグインやその他の変更を加えずに、TwentyElevenを使用して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 ) );
    }

今必要なのは、通常の投稿タイプをカスタム投稿タイプに変更することだけです。プラグインConvertPostTypesを使用して投稿を移動できました、分類法が変換されません。

同様のカスタムカテゴリを作成してカスタム投稿を割り当てることができると思いますが、タグについてはどうでしょうか。これらをどのように変換できますか(自動的に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 に答える