web-dev-qa-db-ja.com

カスタムフィールドを投稿カテゴリに変換する

カスタムフィールドをカテゴリに変換する方法を知っている人はいますか?また、変換されたカテゴリを適切な投稿に割り当てますか?これはどういうわけかすべての投稿をループする必要があります。誰もがそれを行うことができる特定のプラグインを知っていますか?

4
DekiGk

いい質問ですね。小さなスクリプトを適用するには多くの方法がありますが、これを行う最も簡単な方法は数行かかります。

次のコードに関するメモ

meta_querycategoryのように、ほとんどのパラメータはクエリに追加されるかもしれません。 wp_create_category()、一度カテゴリを作成します。ネイティブ投稿タイプでのみ機能するwp_set_post_terms()は、新しいカテゴリを他の既存のカテゴリに追加します。

function wpse_248054(){

    $custom_field_name = '_credit';

    $posts = new WP_Query(
        array(
            'posts_per_page' => -1,
            'post_type'=> 'post',
        )   
    );

    foreach($posts->posts as $post){

        $meta = get_post_meta($post->ID, '_credit', true);

        if(! empty( $meta )){
            $term_id = wp_create_category($meta, 3); // 2nd argument, parent id (optional)

            $new_post_cat = wp_set_post_terms( $post->ID, $term_id, 'category', true );

        }
    }
}

add_action('admin_init', 'wpse_248054');

しかし申し訳ありませんが、それを行うためのプラグインがわかりません;-)

3
Benoti