web-dev-qa-db-fra.com

Attribuer une catégorie en utilisant un champ personnalisé?

Est-il possible d'utiliser un champ personnalisé pour attribuer la catégorie de publication?

Par exemple:

J'ai un champ personnalisé Genres dans mon type de message personnalisé Tvseries.

Puis je suis entré: Action, Drame, Comédie

Une fois que je l'ai sauvegardé ou publié, il sera assigné à ces 3 catégories i entrées dans le champ d'entrée/personnalisé.

1
Archangel17

Vous devez vous connecter à save_post et définir les catégories à l'aide de wp_set_object_terms():

// Add an action to run on post save
add_action( 'save_post', 'set_genre_on_save' );
function set_genre_on_save( $post_id ){
    // Check the post type
    if (is_single('tvseries')) {
        // Get the custom field data
        $custom_field_data = get_post_custom( $post_id );
        // Check if there is any genres entered in the metabox
        if (isset($custom_box_data['genre'])) {
            // Save the genre data (separated by comma) into an array
            $genre_array = explode( ',', $custom_box_data['genre'] );
            //Set the array values to lower case
            foreach ($genre_array as $genre){
                $genre = strtolower($genre);
            }
            // Set the categories for these genres
            wp_set_object_terms( $post_id, $genre_array, 'category' );
        }
    }
}

Vous devez entrer la slug ou la ID de vos catégories dans le champ. Par exemple, War Movies ne fonctionnera pas, mais war-movies fonctionnera. De plus, il ne doit y avoir aucun espace blanc entre les valeurs (ou vous devez changer ',' en ' ,').

Notez que ceci est juste un exemple, puisque vous n'avez posté aucun code. Vous devrez peut-être modifier certaines valeurs telles que genres pour les faire correspondre à vos types de champs/publications personnalisés.

1
Jack Johansson