wake-up-neo.com

Taxonomiebegriff kann nicht mit wp_insert_post () eingefügt werden

Ich habe einen benutzerdefinierten Beitragstyp namens eyeglasses und eine benutzerdefinierte Taxonomie namens models. Ich habe auch zwei Begriffe für die Taxonomie namens M156 und M120 erstellt. Jetzt versuche ich, zwei Posts zum Testen über wp_insert_post hochzuladen.

Dies fügt den $title zum post_title von eyeglasses hinzu, fügt jedoch den Begriff des Beitrags nicht hinzu oder aktualisiert ihn nicht.

function we_load_posts($title, $term)
{
    wp_insert_post(array(
        "post_type" => "eyeglasses",
        "post_title" => $title,
        "tax_input" => array(
                             "models" => array($term)
                           ),
        "post_status" => "publish"
    ));
}
we_load_posts("Montana", "M156");
we_load_posts("Havana", "M120");

kannst du mich bitte wissen lassen, was ich hier vermisse oder falsch mache?

3
Behseini

Einige Punkte fallen mir ein:

  1. In "post_type" => "'eyeglasses" ist ein Tippfehler (zusätzliches einfaches Anführungszeichen). Es sollte sein: "post_type" => "eyeglasses".

  2. Versuchen Sie, den $term anstelle von array( $term ) einzufügen:

    "tax_input" => array(
        "models" => $term
    )
    
  3. Ist es auch models oder model? z.B.

    "tax_input" => array(
        "model" => $term
    )
    
  4. tax_input erfordert die Fähigkeit assign_terms. Wenn der Benutzer, mit dem Sie diesen CODE ausführen, nicht über diese Funktion verfügt, funktioniert er nicht.

    In diesem Fall ist der richtige Weg:

    $post_id = wp_insert_post(array(
        "post_type" => "eyeglasses",
        "post_title" => $title,
        "post_status" => "publish"
    ));
    
    wp_set_object_terms( $post_id, $term, 'model' );
    
4
Nazaria