web-dev-qa-db-de.com

Fügen Sie Sie bei der Erstellung eines neuen Beitrags einen neuen Begriff ein

ich arbeite derzeit an einem Snippet, um einen neuen Beitrag dynamisch einzufügen (es ist ein benutzerdefinierter Beitragstyp). Während dieser neuen Beitragserstellung muss ich Begriffe in benutzerdefinierte Taxonomien einfügen, die dem benutzerdefinierten Beitragstyp zugeordnet sind.

Ich habe die berühmte Fehlermeldung "Ungültige Taxonomie" und weiß nicht, wie ich das lösen soll.

Hier ist der Code, den ich verwende:

  • der benutzerdefinierte Beitragstyp lautet: property
  • die benutzerdefinierte Taxonomie lautet: 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' );

}

Mit diesem Code wird der Beitrag korrekt erstellt, der Begriff jedoch nicht.

Jede Hilfe wäre sehr dankbar!

4
Remi

zuerst sollten Sie die Taxnomie in dem benutzerdefinierten Beitragstyp festlegen, den Sie gerade nur für den Inhalt des Beitragstitels und die Kommentare festgelegt haben, die Sie nicht für die benutzerdefinierte Taxnomie festgelegt haben

$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.
);

diese Abfrage legt die benutzerdefinierte Taxnomie beim Erstellen eines benutzerdefinierten Posts fest. Diesen Link überprüfen

1
Sri