タイトルの通り。
pTypeConverterで通常の投稿(カテゴリ名"hoge"とする)をカスタム投稿に変換しても、カテゴリ情報は削除されない。
そのため、その後条件分岐でin_category("hoge")などで振り分けようとしても通常の投稿と一緒に、変更したカスタム投稿が引っかかってしまう。
そりゃそうっちゃそうなんだけど、古いWPでカテゴリ分けで作っていたものを、カスタム投稿に振り分けたいなんて案件はざらにある。
で、カスタム投稿にした投稿からカテゴリ情報を除去する為には、そのカスタム投稿に"categeory"というカスタムタクソノミを作ってやればいい。
register_post_type( 'hoge', array( 'labels' => array( 'name' => __( 'カスタム投稿名' ), 'singular_name' => __( 'カスタム投稿名' ) ), 'public' => true, 'has_archive' => true, 'menu_position' => 5, 'supports'=> array('title', 'thumbnail', 'excerpt', 'editor') , ) ); register_taxonomy( 'category', 'column', array( 'hierarchical' => true, 'update_count_callback' => '_update_post_term_count', 'label' => 'カテゴリー', 'singular_label' => 'カテゴリー', 'public' => true, 'show_ui' => true, 'query_var' => true ) );
こんな感じでカスタム投稿名に「カテゴリ」というカスタムタクソノミを追加してやると、通常の投稿(post)と同じカテゴリーが表示される。
ここでカテゴリ情報を除去すると、MySQL内のカテゴリとの関連性を示す「wp_term_relationships」が除去される。
カテゴリーもカスタムタクソノミの一種ってことですね。
流石Wordpress。