Allow edit posts page to save a empty set of terms for a custom hierarchical taxonomy. Props scribu for initial patch. See #10122
git-svn-id: http://svn.automattic.com/wordpress/trunk@14230 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
99b439c6f7
commit
e79df91561
|
@ -2190,7 +2190,7 @@ function wp_insert_post($postarr = array(), $wp_error = false) {
|
||||||
$data = stripslashes_deep( $data );
|
$data = stripslashes_deep( $data );
|
||||||
$where = array( 'ID' => $post_ID );
|
$where = array( 'ID' => $post_ID );
|
||||||
|
|
||||||
if ($update) {
|
if ( $update ) {
|
||||||
do_action( 'pre_post_update', $post_ID );
|
do_action( 'pre_post_update', $post_ID );
|
||||||
if ( false === $wpdb->update( $wpdb->posts, $data, $where ) ) {
|
if ( false === $wpdb->update( $wpdb->posts, $data, $where ) ) {
|
||||||
if ( $wp_error )
|
if ( $wp_error )
|
||||||
|
@ -2229,13 +2229,19 @@ function wp_insert_post($postarr = array(), $wp_error = false) {
|
||||||
// old-style tags_input
|
// old-style tags_input
|
||||||
if ( isset( $tags_input ) )
|
if ( isset( $tags_input ) )
|
||||||
wp_set_post_tags( $post_ID, $tags_input );
|
wp_set_post_tags( $post_ID, $tags_input );
|
||||||
// new-style support for all tag-like taxonomies
|
// new-style support for all taxonomies
|
||||||
if ( !empty($tax_input) ) {
|
$tax_names = get_object_taxonomies( get_post($post_ID) );
|
||||||
foreach ( $tax_input as $taxonomy => $tags ) {
|
foreach ( (array)$tax_names as $taxonomy ) {
|
||||||
$taxonomy_obj = get_taxonomy($taxonomy);
|
if ( 'category' == $taxonomy ) // Handled seperately.
|
||||||
if ( current_user_can($taxonomy_obj->assign_cap) )
|
continue;
|
||||||
wp_set_post_terms( $post_ID, $tags, $taxonomy );
|
$taxonomy_obj = get_taxonomy($taxonomy);
|
||||||
}
|
if ( !current_user_can($taxonomy_obj->assign_cap) )
|
||||||
|
continue;
|
||||||
|
if ( !$taxonomy_obj->show_ui )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
$tags = isset($tax_input[$taxonomy]) ? $tax_input[$taxonomy] : array();
|
||||||
|
wp_set_post_terms( $post_ID, $tags, $taxonomy );
|
||||||
}
|
}
|
||||||
|
|
||||||
$current_guid = get_post_field( 'guid', $post_ID );
|
$current_guid = get_post_field( 'guid', $post_ID );
|
||||||
|
@ -2265,7 +2271,7 @@ function wp_insert_post($postarr = array(), $wp_error = false) {
|
||||||
|
|
||||||
wp_transition_post_status($data['post_status'], $previous_status, $post);
|
wp_transition_post_status($data['post_status'], $previous_status, $post);
|
||||||
|
|
||||||
if ( $update)
|
if ( $update )
|
||||||
do_action('edit_post', $post_ID, $post);
|
do_action('edit_post', $post_ID, $post);
|
||||||
|
|
||||||
do_action('save_post', $post_ID, $post);
|
do_action('save_post', $post_ID, $post);
|
||||||
|
@ -2320,7 +2326,7 @@ function wp_update_post($postarr = array()) {
|
||||||
$postarr['post_date_gmt'] = '';
|
$postarr['post_date_gmt'] = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($postarr['post_type'] == 'attachment')
|
if ( $postarr['post_type'] == 'attachment' )
|
||||||
return wp_insert_attachment($postarr);
|
return wp_insert_attachment($postarr);
|
||||||
|
|
||||||
return wp_insert_post($postarr);
|
return wp_insert_post($postarr);
|
||||||
|
|
Loading…
Reference in New Issue