Benutzerdefinierte Taxonomie wp_insert_post

Ich habe eine benutzerdefinierte Post-Typ books und eine benutzerdefinierte Taxonomie books-categories . wp_insert_post() und es funktioniert. Wie kann ich eine zweite Taxonomie namens location hinzufügen? Dieser Code speichert meine benutzerdefinierte Taxonomie namens location . Kann mir bitte jemand helfen?

  $title, 'post_content' => $description, 'post_category' => array($_POST['cat']), // Usable for custom taxonomies too 'tags_input' => array($tags), 'post_status' => 'draft', // Choose: publish, preview, future, draft, etc. 'post_type' => 'books' //'post',page' or use a custom post type if you want to ); //save the new post $pid = wp_insert_post($new_post); //insert taxonomies wp_set_post_terms( $pid, $_POST['cat'], 'books-categories', false ); wp_set_post_terms( $pid, $_POST['location'], 'location', false ); } ?>   

Solutions Collecting From Web of "Benutzerdefinierte Taxonomie wp_insert_post"

Das Problem ist, dass Sie zwei Eingänge haben, die beide Daten mit dem name der cat senden.

Sie müssen die zweite Instanz ändern von:

 wp_dropdown_categories( 'show_option_none=Category&tab_index=4&taxonomy=location' ) 

zu:

 wp_dropdown_categories( 'show_option_none=Category&tab_index=4&taxonomy=location&name=location,' ) 

Und dann ändere das: wp_set_post_terms( $pid, $_POST['cat'], 'location', false );

an: wp_set_post_terms( $pid, $_POST['location'], 'location', false );

Versuche dies

 //hook into the init action and call create_book_taxonomies when it fires add_action( 'init', 'create_topics_hierarchical_taxonomy', 0 ); //create a custom taxonomy name it topics for your posts function create_topics_hierarchical_taxonomy() { // Add new taxonomy, make it hierarchical like categories //first do the translations part for GUI $labels = array( 'name' => _x( 'Topics', 'taxonomy general name' ), 'singular_name' => _x( 'Topic', 'taxonomy singular name' ), 'search_items' => __( 'Search Topics' ), 'all_items' => __( 'All Topics' ), 'parent_item' => __( 'Parent Topic' ), 'parent_item_colon' => __( 'Parent Topic:' ), 'edit_item' => __( 'Edit Topic' ), 'update_item' => __( 'Update Topic' ), 'add_new_item' => __( 'Add New Topic' ), 'new_item_name' => __( 'New Topic Name' ), 'menu_name' => __( 'Topics' ), ); // Now register the taxonomy register_taxonomy('topics',array('post'), array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'topic' ), )); } 

wp_set_post_terms () funktioniert nur für den nativen Post-Typ .

Verwenden Sie für eine Taxonomie für einen benutzerdefinierten Posttyp wp_set_object_terms () .

Ändern Sie Ihren Code in:

 wp_set_object_terms( $pid, $_POST['cat'], 'books-categories', false ); wp_set_object_terms( $pid, $_POST['location'], 'location', false ); 

wp_set_object_term ist die function, die Sie benötigen. Bitte sehen Sie diese Seite,

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

 wp_set_object_terms( $pid, array($_POST['cat']), 'books-categories' ); wp_set_object_terms( $pid, array($_POST['location']), 'location' ); 

Hoffe das hilft 🙂