WordPress.org

Make WordPress Core

Ticket #13153: 13153.patch

File 13153.patch, 1.6 KB (added by prettyboymp, 4 years ago)
  • wp-admin/includes/post.php

     
    309309                } 
    310310 
    311311                $tax_names = get_object_taxonomies( get_post($post_ID) ); 
    312  
    313312                if ( isset($new_cats) && in_array( 'category', $tax_names ) ) { 
    314313                        $cats = (array) wp_get_post_categories($post_ID); 
    315314                        $post_data['post_category'] = array_unique( array_merge($cats, $new_cats) ); 
    316315                } 
    317316 
    318317                foreach ( $tax_names as $tax_name ) { 
    319                         if( isset( $tax_input[$tax_name])  ) { 
    320                                 if ( is_taxonomy_hierarchical( $tax_name ) ) 
    321                                         $terms = (array) wp_get_object_terms( $post_ID, $tax_name, array('fields' => 'ids') ); 
    322                                 else 
    323                                         $terms = (array) wp_get_object_terms( $post_ID, $tax_name, array('fields' => 'names') ); 
    324                                 $post_data['tax_input'][$tax_name] = array_merge( $terms, $tax_input[$tax_name] ); 
    325                         } 
     318                        $taxonomy_obj = get_taxonomy($tax_name); 
     319                        if(  isset( $tax_input[$tax_name]) && current_user_can( $taxonomy_obj->assign_cap ) ) 
     320                                $new_terms = $tax_input[$tax_name]; 
     321                        else  
     322                                $new_terms = array(); 
     323                                 
     324                        if ( $taxonomy_obj->hierarchical ) 
     325                                $current_terms = (array) wp_get_object_terms( $post_ID, $tax_name, array('fields' => 'ids') ); 
     326                        else 
     327                                $current_terms = (array) wp_get_object_terms( $post_ID, $tax_name, array('fields' => 'names') ); 
     328 
     329                        $post_data['tax_input'][$tax_name] = array_merge( $current_terms, $new_terms ); 
    326330                } 
    327331 
    328332                $post_data['ID'] = $post_ID; 
     
    16041608/* ]]> */ 
    16051609</script> 
    16061610<?php 
    1607 } 
     1611} 
     1612 No newline at end of file