Changeset 37589
- Timestamp:
- 05/28/2016 03:09:09 AM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/query.php
r37544 r37589 1469 1469 * Introduced the `$comment_status` and `$ping_status` parameters. 1470 1470 * Introduced `RAND(x)` syntax for `$orderby`, which allows an integer seed value to random sorts. 1471 * @since 4.6.0 Added 'post_name__in' support for `$orderby`. 1471 * @since 4.6.0 Added 'post_name__in' support for `$orderby`. Introduced `$lazy_load_term_meta`. 1472 1472 * @access public 1473 1473 * … … 1568 1568 * @type bool $update_post_meta_cache Whether to update the post meta cache. Default true. 1569 1569 * @type bool $update_post_term_cache Whether to update the post term cache. Default true. 1570 * @type bool $lazy_load_term_meta Whether to lazy-load term meta. Setting to false will 1571 * disable cache priming for term meta, so that each 1572 * get_term_meta() call will hit the database. 1573 * Defaults to the value of `$update_post_term_cache`. 1570 1574 * @type int $w The week number of the year. Default empty. Accepts numbers 0-53. 1571 1575 * @type int $year The four-digit year. Default empty. Accepts any four-digit year. … … 2546 2550 $q['update_post_term_cache'] = true; 2547 2551 2552 if ( ! isset( $q['lazy_load_term_meta'] ) ) { 2553 $q['lazy_load_term_meta'] = $q['update_post_term_cache']; 2554 } 2555 2548 2556 if ( !isset($q['update_post_meta_cache']) ) 2549 2557 $q['update_post_meta_cache'] = true; … … 3783 3791 } 3784 3792 3785 if ( $q[' update_post_term_cache'] ) {3793 if ( $q['lazy_load_term_meta'] ) { 3786 3794 wp_queue_posts_for_term_meta_lazyload( $this->posts ); 3787 3795 } -
trunk/tests/phpunit/tests/term/meta.php
r36567 r37589 151 151 } 152 152 153 /** 154 * @ticket 36593 155 */ 156 public function test_lazy_load_term_meta_should_fall_back_on_update_post_term_cache() { 157 $q = new WP_Query( array( 158 'update_post_term_cache' => true, 159 ) ); 160 161 $this->assertTrue( $q->get( 'lazy_load_term_meta' ) ); 162 163 $q = new WP_Query( array( 164 'update_post_term_cache' => false, 165 ) ); 166 167 $this->assertFalse( $q->get( 'lazy_load_term_meta' ) ); 168 } 169 170 /** 171 * @ticket 36593 172 */ 173 public function test_lazy_load_term_meta_false() { 174 global $wpdb; 175 176 $p = self::factory()->post->create( array( 'post_status' => 'publish' ) ); 177 178 register_taxonomy( 'wptests_tax', 'post' ); 179 $terms = self::factory()->term->create_many( 3, array( 'taxonomy' => 'wptests_tax' ) ); 180 wp_set_object_terms( $p, $terms, 'wptests_tax' ); 181 foreach ( $terms as $t ) { 182 add_term_meta( $t, 'foo', 'bar' ); 183 } 184 185 $q = new WP_Query( array( 186 'cache_results' => true, 187 'update_post_term_cache' => true, 188 'lazy_load_term_meta' => false, 189 ) ); 190 191 if ( $q->have_posts() ) { 192 while ( $q->have_posts() ) { 193 $q->the_post(); 194 195 // Requests will hit the database. 196 $num_queries = $wpdb->num_queries; 197 $this->assertSame( 'bar', get_term_meta( $terms[0], 'foo', true ) ); 198 $num_queries++; 199 $this->assertSame( $num_queries, $wpdb->num_queries ); 200 201 $this->assertSame( 'bar', get_term_meta( $terms[1], 'foo', true ) ); 202 $num_queries++; 203 $this->assertSame( $num_queries, $wpdb->num_queries ); 204 } 205 } 206 } 207 153 208 public function test_adding_term_meta_should_bust_get_terms_cache() { 154 209 $terms = self::factory()->term->create_many( 2, array( 'taxonomy' => 'wptests_tax' ) );
Note: See TracChangeset
for help on using the changeset viewer.