WordPress wp_insert_post fügt keine Tags ein

Lesezeit: 3 Minuten

Benutzer-Avatar
Yedidel

Ich versuche, einen Beitrag mit diesem Code einzufügen:

$my_post = array(
                'post_type'    => "essays",
                'post_title'    => 'TEST 3',
                //'post_content'  => $content,
                'post_status'   => 'draft',
                'post_author'   => 1,
                //'post_category' => $cat,
                'tags_input'    => 'TQM,tag',
        );

$post_id = wp_insert_post($my_post);

Alles funktioniert gut, außer den Tags, es werden keine eingefügt. Irgendeine Idee?

  • Gibt es irgendwelche Fehler zurück? Nicht sicher, aber könnte es ein Problem mit nicht vorhandenen Tags geben?

    – Dennis Hünink

    3. Mai 2012 um 15:48 Uhr

  • Nein, ich habe versucht, vorhandene Tags einzufügen, und es funktioniert auch nicht

    – yedel

    29. Mai 2012 um 8:20 Uhr

Benutzer-Avatar
Adib Aroui

Verwenden Sie die wp_set_object_terms() Funktion:

http://codex.wordpress.org/Function_Reference/wp_set_object_terms

wp_set_object_terms($post_id , $arrayoftags, $name_of_tag_taxonomy, false);

Viel Glück

Benutzer-Avatar
Nadh

Ihr Beitragstyp ist essays. Benutzerdefinierte Beitragstypen unterstützen standardmäßig keine Tags. Sie müssen ein hinzufügen tags Taxonomie zu ihnen.

http://codex.wordpress.org/Taxonomies

http://codex.wordpress.org/Function_Reference/register_taxonomy

  • Ich bin mir da nicht wirklich sicher … Es wird nicht erwähnt codex.wordpress.org/Function_Reference/wp_insert_post ohnehin. Ich bin gespannt, ob es für den TS funktioniert oder nicht

    – Dennis Hünink

    3. Mai 2012 um 15:54 Uhr

  • Schön! Ich habe es einfach übersehen. Das sollte es tun.

    – Dennis Hünink

    3. Mai 2012 um 15:59 Uhr

  • Ich habe die Tags-Taxonomie registriert. Ich kann Tags auch manuell über wp-admin hinzufügen, aber im Code funktioniert es nicht …

    – yedel

    23. Mai 2012 um 14:25 Uhr

Um den Beitrag mit Tags und Kategorien einzufügen, tun Sie dies

$pid=wp_insert_post($new_post);
wp_set_post_terms( $pid, $arrayoftags);
wp_set_post_categories( $pid, $arrayofcategories );

$pid ist also die Beitrags-ID, im Grunde fügen Sie den Beitrag zuerst ohne Tags oder Kategorien ein und die Funktion gibt die ID des Beitrags zurück, mit der Sie dann die Tags und Kategorien mit ihrer jeweiligen Funktion einfügen können, wenn Sie sich den Quellcode von wp_insert_post ansehen Sie werden feststellen, dass die Funktion für benutzerdefinierte Beitragstypen anders funktioniert. Ich habe mich nicht näher damit befasst, da ich den Code nicht hacken möchte, da es eine bessere Lösung gibt, indem die integrierten Funktionen verwendet werden

Hallo, ich habe diese Antwort irgendwo gefunden und das könnte Ihnen helfen

//first get the term (I used slug, but  you can aslo use 'name'), see: http://codex.wordpress.org/Function_Reference/get_term_by
$term = get_term_by( 'slug', 'your custom term slug', 'your custom taxonomy' );
//then get the term_id
$term_id = $term->term_id;
//Use 'tax_input' instead of 'post_category' and provide the term_id:
'tax_input' => array( 'your taxonomy' => $term_id )

Ich hoffe, das hilft.

Tags und Beitragskategorien sollten als Array eingegeben werden, auch wenn es nur eines ist. So 'tags_input' => 'TQM,tag' sollte sein 'tags_input' => array('TQM,tag')

  • Auch versucht es mit einem Array … funktioniert nicht. Auch dies ist bei neuen Tags kein Problem, da die Verwendung alter auch nicht funktioniert

    – yedel

    23. Mai 2012 um 14:24 Uhr

  • Die Lösung des Arrays ist korrekt, sollte es aber sein 'tags_input' => array('TQM', 'tag') (Jedes Tag ist ein Array-Element).

    – idFlood

    7. Oktober 2014 um 7:00 Uhr

  • Auch versucht es mit einem Array … funktioniert nicht. Auch dies ist bei neuen Tags kein Problem, da die Verwendung alter auch nicht funktioniert

    – yedel

    23. Mai 2012 um 14:24 Uhr

  • Die Lösung des Arrays ist korrekt, sollte es aber sein 'tags_input' => array('TQM', 'tag') (Jedes Tag ist ein Array-Element).

    – idFlood

    7. Oktober 2014 um 7:00 Uhr

1382260cookie-checkWordPress wp_insert_post fügt keine Tags ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy