WordPress tax_input nur wenn Sie eingeloggt sind

Ich arbeite an einem WordPress-Plugin, wo ein Speichern von Daten durch Formulare in meiner Website führen. Wenn ein Benutzer das Formular abschickt, wird der folgende Code ausgeführt, so dass ein Post im Post-Typ “Lead” hinzugefügt wird.

Fast alles funktioniert gut außer dem tax_input. Wenn ich mich in WordPress eingeloggt habe und das Formular auf meiner Website abschicke, wird der Lead-Status “open” gesetzt.

Aber wenn ich nicht in WordPress admin eingeloggt bin und das Formular abschicke (ein Besucher der Website wird nie abgemeldet), wird kein Lead-Status “offen” gesetzt.

Weiß jemand was ich falsch mache?

// Get the id of taxonomy "lead-status" by slug $term = get_term_by('slug', 'open', 'lead-status' ); $term_id = $term->term_id; $new_lead = array( 'post_title' => $lead_name, 'post_content' => $lead_message, 'post_type' => 'leads', 'post_status' => 'publish', 'tax_input' => array('lead-status' => $term_id) ); $lid = wp_insert_post($new_lead); 

Solutions Collecting From Web of "WordPress tax_input nur wenn Sie eingeloggt sind"

Sie können wp_set_object_terms nachdem der Post gespeichert wurde und für den Fall, dass er fehlschlägt, erhalten Sie einen Grund für diesen ex:

 $new_lead = array( 'post_title' => $lead_name, 'post_content' => $lead_message, 'post_type' => 'leads', 'post_status' => 'publish', ); $lid = wp_insert_post($new_lead); $status = wp_set_object_terms($lid,$term_id,'lead-status'); 

Jetzt wird das Speichern, aber $ Status den Grund für einen Fehler in einem fehlgeschlagenen Fall enthalten.