投稿データをカスタム投稿に移動させる。
以前作ったサイトのバージョンアップをした際に、今まで全部投稿でまとめていたのをカスタム投稿にしていくつかわけようかと思いました。
しかし、調べるとどうも投稿からカスタム投稿に移動させる機能が見つからない。
というわけで、どうにかできないかと色々試してみました。
1.事前に移動させるカスタム投稿とカスタム分類を作っておきます。
2.まず適当なページを作ります。
3.適当なページに下記のテンプレートファイルを読み込ませます
convert.php
<?php /* Template Name: コンバート */ ?> <?php query_posts('post_type=post&posts_per_page=100&cat=XXX'); //XXXにはカテゴリーのIDを入力。100件以上データがあるなら数字を増やしてください。 ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <?php wp_set_object_terms($post->ID,'タグ名','カスタム分類名'); /*カスタム分類にタグ名というタグを追加する。 例)wp_set_object_terms($post->ID,'wordpress','カテゴリー') カテゴリーというカスタム分類にwordpressというタグを付ける カテゴリーをまるごと移動させたときに、もとのカテゴリーが分からなくなるように何か付けておいたほうがいいでしょう。 */ ?> <?php $my_post=array(); $my_post['ID'] = $post->ID; $my_post['post_type'] = '投稿タイプ名'; /*投稿タイプをpostから変更する処理 例として $my_post['post_type'] = 'new_post';にすると、投稿タイプnew_postに変更される。 */ wp_update_post( $my_post ); ?> <?php echo the_title();?> <?php endwhile; endif; ?> 変換が終わりました。
4.作成したページを読み込みます。
5.変換が終わりましたのメッセージがでたら変換終了です。確認してみてください。
*注意:データベースを操作するので、念のためバックアップを取っておき、自己責任でお願いします。