Changeset 29915
- Timestamp:
- 10/16/2014 04:44:13 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/functions.php
r29833 r29915 4630 4630 return (bool) $var; 4631 4631 } 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 -
trunk/src/wp-includes/taxonomy.php
r29902 r29915 1292 1292 } 1293 1293 1294 1294 1295 if ( is_object($term) && empty($term->filter) ) { 1295 wp_cache_add($term->term_id, $term, $taxonomy); 1296 wp_cache_add( $term->term_id, $term, $taxonomy ); 1297 wp_cache_add( "slug:{$term->slug}", $term->term_id, $group ); 1298 wp_cache_add( "name:" . md5( $term->name ), $term->term_id, $group ); 1296 1299 $_term = $term; 1297 1300 } else { … … 1304 1307 if ( ! $_term ) 1305 1308 return null; 1306 wp_cache_add($term, $_term, $taxonomy); 1309 wp_cache_add( $term, $_term, $taxonomy ); 1310 wp_cache_add( "slug:{$_term->slug}", $term, $group ); 1311 wp_cache_add( "name:" . md5( $_term->name ), $term, $group ); 1307 1312 } 1308 1313 } … … 1376 1381 return false; 1377 1382 1383 1384 1378 1385 if ( 'slug' == $field ) { 1379 1386 $field = 't.slug'; … … 1381 1388 if ( empty($value) ) 1382 1389 return false; 1390 1391 1392 1393 1394 1395 1383 1396 } else if ( 'name' == $field ) { 1384 1397 // Assume already escaped 1385 1398 $value = wp_unslash($value); 1386 1399 $field = 't.name'; 1400 1401 1402 1403 1404 1387 1405 } else if ( 'term_taxonomy_id' == $field ) { 1388 1406 $value = (int) $value; 1389 1407 $field = 'tt.term_taxonomy_id'; 1390 1408 } else { 1409 1410 1411 1412 1391 1413 $term = get_term( (int) $value, $taxonomy, $output, $filter); 1392 if ( is_wp_error( $term ) ) 1414 if ( is_wp_error( $term ) ) 1393 1415 $term = false; 1394 return $term; 1395 } 1396 1397 $term = $wpdb->get_row( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s AND $field = %s LIMIT 1", $taxonomy, $value) ); 1416 } 1417 } else { 1418 $term = $wpdb->get_row( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s AND $field = %s LIMIT 1", $taxonomy, $value) ); 1419 } 1420 1398 1421 if ( !$term ) 1399 1422 return false; 1400 1423 1401 wp_cache_add($term->term_id, $term, $taxonomy);1402 1403 1424 /** This filter is documented in wp-includes/taxonomy.php */ 1404 1425 $term = apply_filters( 'get_term', $term, $taxonomy ); … … 1408 1429 1409 1430 $term = sanitize_term($term, $taxonomy, $filter); 1431 1432 1433 1434 1410 1435 1411 1436 if ( $output == OBJECT ) { … … 1891 1916 1892 1917 $terms = $wpdb->get_results($query); 1893 if ( 'all' == $_fields ) {1894 update_term_cache($terms);1895 }1896 1918 1897 1919 if ( empty($terms) ) { … … 3585 3607 */ 3586 3608 function clean_term_cache($ids, $taxonomy = '', $clean_taxonomy = true) { 3587 global $wpdb; 3609 global $_wp_suspend_cache_invalidation, $wpdb; 3610 3611 if ( ! empty( $_wp_suspend_cache_invalidation ) ) { 3612 return; 3613 } 3588 3614 3589 3615 if ( !is_array($ids) ) … … 3632 3658 } 3633 3659 3634 wp_ cache_set( 'last_changed', microtime(), 'terms');3660 wp_ ); 3635 3661 } 3636 3662 … … 3727 3753 */ 3728 3754 function update_term_cache($terms, $taxonomy = '') { 3755 3756 3757 3758 3759 3760 3729 3761 foreach ( (array) $terms as $term ) { 3730 3762 $term_taxonomy = $taxonomy; … … 3732 3764 $term_taxonomy = $term->taxonomy; 3733 3765 3734 wp_cache_add($term->term_id, $term, $term_taxonomy); 3766 wp_cache_add( $term->term_id, $term, $term_taxonomy ); 3767 $group = $term_taxonomy . ':' . wp_get_last_changed( 'terms', true ); 3768 wp_cache_add( "slug:{$term->slug}", $term->term_id, $group ); 3769 wp_cache_add( "name:" . md5( $term->name ), $term->term_id, $group ); 3735 3770 } 3736 3771 } -
trunk/tests/phpunit/tests/term/cache.php
r27163 r29915 94 94 _unregister_taxonomy( $tax ); 95 95 } 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 96 212 }
Note: See TracChangeset
for help on using the changeset viewer.