web-dev-qa-db-fra.com

Convertir des champs personnalisés pour publier des catégories

Est-ce que quelqu'un sait comment convertir des champs personnalisés en catégories? Et aussi assigner les catégories converties au bon poste? Cela devrait en boucle parcourir tous les messages. Est-ce que quelqu'un connaît un plugin spécifique qui peut faire ça?

4
DekiGk

C'est une bonne question. Il existe de nombreuses façons d'appliquer un petit script, mais la méthode la plus simple consiste à prendre quelques lignes.

Une note sur le code suivant:

La plupart des paramètres peuvent être ajoutés à la requête, comme meta_query, category. wp_create_category(), créera une catégorie une fois. wp_set_post_terms (), ne fonctionne qu'avec les types de publication natifs, ajoutera la nouvelle catégorie à d'autres existantes.

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');

Mais désolé, je ne connais pas de plugin pour le faire ;-)

3
Benoti