Changeset 35032
- Timestamp:
- 10/12/2015 03:12:29 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/category-template.php
r34696 r35032 1138 1138 if ( false === $terms ) { 1139 1139 $terms = wp_get_object_terms( $post->ID, $taxonomy ); 1140 wp_cache_add($post->ID, $terms, $taxonomy . '_relationships'); 1141 } 1140 $to_cache = array(); 1141 foreach ( $terms as $key => $term ) { 1142 $to_cache[ $key ] = $term->data; 1143 } 1144 wp_cache_add( $post->ID, $to_cache, $taxonomy . '_relationships' ); 1145 } 1146 1147 $terms = array_map( 'get_term', $terms ); 1142 1148 1143 1149 /** -
trunk/src/wp-includes/class-wp-term.php
r35031 r35032 97 97 98 98 /** 99 * Info about the term, as stored in the database. 100 * 101 * @since 4.4.0 102 * @access protected 103 * @var array 104 */ 105 protected $data = array(); 106 107 /** 99 108 * Stores the term object's sanitization level. 100 109 * … … 158 167 $this->$key = $value; 159 168 } 169 170 $this->data = sanitize_term( $term, $this->taxonomy, $this->filter ); 160 171 } 161 172 … … 183 194 return get_object_vars( $this ); 184 195 } 196 197 /** 198 * Getter. 199 * 200 * @since 4.4.0 201 * @access public 202 * 203 * @return mixed 204 */ 205 public function __get( $key ) { 206 switch ( $key ) { 207 case 'data' : 208 return sanitize_term( $this->{$key}, $this->data->taxonomy, 'raw' ); 209 break; 210 } 211 } 185 212 } -
trunk/src/wp-includes/taxonomy-functions.php
r35029 r35032 3063 3063 3064 3064 // First, get all of the original args 3065 $term = get_term( $term_id, $taxonomy , ARRAY_A);3065 $term = get_term( $term_id, $taxonomy ); 3066 3066 3067 3067 if ( is_wp_error( $term ) ) { … … 3073 3073 } 3074 3074 3075 $term = (array) $term->data; 3076 3075 3077 // Escape data pulled from DB. 3076 $term = wp_slash( $term);3078 $term = wp_slash( $term ); 3077 3079 3078 3080 // Merge old and new args with new args overwriting old ones. -
trunk/tests/phpunit/tests/term.php
r34646 r35032 539 539 540 540 /** 541 * @ticket 34262 542 */ 543 public function test_get_the_terms_should_not_cache_wp_term_objects() { 544 $p = $this->factory->post->create(); 545 register_taxonomy( 'wptests_tax', 'post' ); 546 $t = $this->factory->term->create( array( 'taxonomy' => 'wptests_tax' ) ); 547 wp_set_object_terms( $p, $t, 'wptests_tax' ); 548 549 // Prime the cache. 550 $terms = get_the_terms( $p, 'wptests_tax' ); 551 552 $cached = get_object_term_cache( $p, 'wptests_tax' ); 553 554 $this->assertNotEmpty( $cached ); 555 $this->assertSame( $t, (int) $cached[0]->term_id ); 556 $this->assertNotInstanceOf( 'WP_Term', $cached[0] ); 557 } 558 559 /** 560 * @ticket 34262 561 */ 562 public function test_get_the_terms_should_return_wp_term_objects_from_cache() { 563 $p = $this->factory->post->create(); 564 register_taxonomy( 'wptests_tax', 'post' ); 565 $t = $this->factory->term->create( array( 'taxonomy' => 'wptests_tax' ) ); 566 wp_set_object_terms( $p, $t, 'wptests_tax' ); 567 568 // Prime the cache. 569 get_the_terms( $p, 'wptests_tax' ); 570 571 $cached = get_the_terms( $p, 'wptests_tax' ); 572 573 $this->assertNotEmpty( $cached ); 574 $this->assertSame( $t, (int) $cached[0]->term_id ); 575 $this->assertInstanceOf( 'WP_Term', $cached[0] ); 576 } 577 578 /** 541 579 * @ticket 31086 542 580 */
Note: See TracChangeset
for help on using the changeset viewer.