web-dev-qa-db-fra.com

Insérer un nouveau terme lors de la création d'un nouveau post

je travaille actuellement sur un extrait pour insérer un nouveau message de manière dynamique (c'est un type de message personnalisé). Au cours de cette nouvelle publication, je dois insérer des termes dans les taxonomies personnalisées associées au type de publication personnalisé.

Je reçois le fameux message d'erreur "taxonomie invalide" et je ne sais pas comment résoudre ce problème.

Voici le code que j'utilise:

  • le type de message personnalisé est: propriété
  • la taxonomie personnalisée est: type

Code:

// Insert property into DB
$property = array(
    'post_title'   => $title,
    'post_content' => $description,
    'post_status'  => 'draft',
    'post_author'  => 1,
    'post_type'    => 'property'
);

// Insert the post into the database
$property_id = wp_insert_post( $property );         

// Taxo Property Type
if( $property_type ) {

    // check if term exists
    $property_type_term = term_exists( $property_type, 'type' );

    if( $property_type_term !== 0 && $term !== null ) {
        // Term exists, get the term id
        $property_type_term_id = $property_type_term;
    } else {
        // Create new term
        $property_type_term_id = wp_insert_term(
                                    $property_type,     // the term 
                                    'type'          // the taxonomy
                                );
    }

    // Assign term id to post
    wp_set_post_terms( $property_id, array($property_type_term_id), 'type' );

}

Avec ce code, la publication est correctement créée mais le terme non.

Toute aide serait très appréciée!

4
Remi

vous devez d’abord définir la taxnomie dans le type de publication personnalisé que vous venez de définir uniquement pour le contenu de la publication du titre de la publication. les commentaires de la publication que vous n’avez pas définis pour la taxnomie personnalisée

$post = array('tax_input'      => [ array( <taxonomy> => <array | string> ) ] // For custom taxonomies. Default empty.
  'page_template'  => [ <string> ] // Requires name of template file, eg template.php. Default empty.
);

cette requête définira la taxnomie personnalisée lors de la création d'un message personnalisé vérifier ce lien

1
Sri