Changeset 3011
- Timestamp:
- 11/07/2005 09:56:03 PM (19 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/admin-db.php
r2959 r3011 119 119 } 120 120 121 wp_cache_set($cat_ID, get_category($cat_ID), 'category'); 122 121 123 if ($update) { 122 124 do_action('edit_category', $cat_ID); 123 125 } else { 126 wp_cache_delete('all_category_ids', 'category'); 124 127 do_action('create_category', $cat_ID); 125 128 do_action('add_category', $cat_ID); … … 167 170 // TODO: Only set categories to general if they're not in another category already 168 171 $wpdb->query("UPDATE $wpdb->post2cat SET category_id='1' WHERE category_id='$cat_ID'"); 172 173 wp_cache_delete($cat_ID, 'category'); 174 wp_cache_delete('all_category_ids', 'category'); 169 175 170 176 do_action('delete_category', $cat_ID); … … 234 240 $wpdb->query("DELETE FROM $wpdb->users WHERE ID = $id"); 235 241 242 wp_cache_delete($id, 'users'); 243 // TODO: Need to delete username keyed cache object. 244 236 245 do_action('delete_user', $id); 237 246 -
trunk/wp-includes/classes.php
r3001 r3011 444 444 $cat_path .= ($pathdir!=''?'/':'') . sanitize_title($pathdir); 445 445 446 $q['cat'] = array_reduce( 447 $cache_categories, 448 create_function('$a, $b', 'return ($b->fullpath == "'.$cat_path.'") ? $b->cat_ID : $a;'), 449 0 450 ); 451 452 // If full path not found, look for last dir as category ignoring parent 453 if($q['cat'] == 0) { 454 $q['cat'] = array_reduce( 455 $cache_categories, 456 create_function('$a, $b', 'return ($b->category_nicename == "'.$q['category_name'].'") ? $b->cat_ID : $a;'), 457 0 458 ); 459 } 460 446 $all_cat_ids = get_all_category_ids(); 447 $q['cat'] = 0; 448 foreach ( $all_cat_ids as $cat_id ) { 449 $cat = get_category($cat_id); 450 if ( $cat->fullpath == $cat_path ) { 451 $q['cat'] = $cat_id; 452 break; 453 } 454 } 455 461 456 $tables = ", $wpdb->post2cat, $wpdb->categories"; 462 457 $join = " LEFT JOIN $wpdb->post2cat ON ($wpdb->posts.ID = $wpdb->post2cat.post_id) LEFT JOIN $wpdb->categories ON ($wpdb->post2cat.category_id = $wpdb->categories.cat_ID) "; -
trunk/wp-includes/functions-post.php
r2996 r3011 138 138 wp_set_post_cats('', $post_ID, $post_category); 139 139 140 if ( 'static' == $post_status ) 140 if ( 'static' == $post_status ) { 141 141 clean_page_cache($post_ID); 142 else 142 wp_cache_delete($post_ID, 'pages'); 143 } else { 143 144 clean_post_cache($post_ID); 145 } 144 146 145 147 // Set GUID -
trunk/wp-includes/functions.php
r3005 r3011 261 261 262 262 function get_settings($setting) { 263 global $wpdb , $cache_settings, $cache_nonexistantoptions;263 global $wpdb; 264 264 if ( strstr($_SERVER['REQUEST_URI'], 'wp-admin/install.php') || defined('WP_INSTALLING') ) 265 265 return false; 266 266 267 if ( empty($cache_settings) ) 268 $cache_settings = get_alloptions(); 269 270 if ( empty($cache_nonexistantoptions) ) 271 $cache_nonexistantoptions = array(); 272 273 if ( 'home' == $setting && '' == $cache_settings->home ) 274 return apply_filters('option_' . $setting, $cache_settings->siteurl); 275 276 if ( isset($cache_settings->$setting) ) : 277 return apply_filters('option_' . $setting, $cache_settings->$setting); 278 else : 279 // for these cases when we're asking for an unknown option 280 if ( isset($cache_nonexistantoptions[$setting]) ) 281 return false; 282 283 $option = $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting'"); 284 285 if (!$option) : 286 $cache_nonexistantoptions[$setting] = true; 287 return false; 288 endif; 289 290 @ $kellogs = unserialize($option); 291 if ( $kellogs !== FALSE ) 292 return apply_filters('option_' . $setting, $kellogs); 293 else return apply_filters('option_' . $setting, $option); 294 endif; 267 $value = wp_cache_get($setting, 'options'); 268 269 if ( false === $value ) { 270 $value = $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting'"); 271 wp_cache_add($setting, $value, 'options'); 272 } 273 274 // If home is not set use siteurl. 275 if ( 'home' == $setting && '' == $value ) 276 return get_settings('siteurl'); 277 278 if ( 'siteurl' == $setting || 'home' == $setting || 'category_base' == $setting ) 279 $value = preg_replace('|/+$|', '', $value); 280 281 @ $kellogs = unserialize($value); 282 if ( $kellogs !== FALSE ) 283 return apply_filters('option_' . $setting, $kellogs); 284 else 285 return apply_filters('option_' . $setting, $value); 295 286 } 296 287 … … 339 330 340 331 function update_option($option_name, $newvalue) { 341 global $wpdb , $cache_settings;332 global $wpdb; 342 333 343 334 if ( is_string($newvalue) ) … … 355 346 add_option($option_name); 356 347 348 wp_cache_set($option_name, $newvalue, 'options'); 349 357 350 $newvalue = $wpdb->escape($newvalue); 358 $option_name = $wpdb->escape( $option_name);351 $option_name = $wpdb->escape($option_name); 359 352 $wpdb->query("UPDATE $wpdb->options SET option_value = '$newvalue' WHERE option_name = '$option_name'"); 360 $cache_settings = get_alloptions(); // Re cache settings361 353 return true; 362 354 } … … 371 363 // thx Alex Stapleton, http://alex.vort-x.net/blog/ 372 364 function add_option($name, $value = '', $description = '', $autoload = 'yes') { 373 global $wpdb , $cache_settings;365 global $wpdb; 374 366 375 367 // Make sure the option doesn't already exist 376 if ( isset($cache_settings->$name) )368 if ( false !== get_option($name, 'options') ) 377 369 return; 378 370 … … 381 373 $value = serialize($value); 382 374 383 if ( !$wpdb->get_var("SELECT option_name FROM $wpdb->options WHERE option_name = '$name'") ) { 384 $name = $wpdb->escape($name); 385 $value = $wpdb->escape($value); 386 $description = $wpdb->escape($description); 387 $wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, option_description, autoload) VALUES ('$name', '$value', '$description', '$autoload')"); 388 389 if ( $wpdb->insert_id ) { 390 global $cache_settings; 391 $cache_settings->{$name} = $original; 392 } 393 } 375 wp_cache_add($name, $value, 'options'); 376 377 $name = $wpdb->escape($name); 378 $value = $wpdb->escape($value); 379 $description = $wpdb->escape($description); 380 $wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, option_description, autoload) VALUES ('$name', '$value', '$description', '$autoload')"); 381 394 382 return; 395 383 } … … 401 389 if ( !$option_id ) return false; 402 390 $wpdb->query("DELETE FROM $wpdb->options WHERE option_name = '$name'"); 391 wp_cache_delete($name, 'options'); 403 392 return true; 404 393 } … … 589 578 // Handles page caching. 590 579 function &get_page(&$page, $output = OBJECT) { 591 global $ page_cache, $wpdb;580 global $wpdb; 592 581 593 582 if ( empty($page) ) { 594 if ( isset($GLOBALS['page']) ) 583 if ( isset($GLOBALS['page']) ) { 595 584 $_page = & $GLOBALS['page']; 596 else 585 wp_cache_add($_page->ID, $_page, 'pages'); 586 } else { 597 587 $_page = null; 588 } 598 589 } elseif ( is_object($page) ) { 599 if ( !isset($page_cache[$page->ID]) ) 600 $page_cache[$page->ID] = &$page; 601 $_page = & $page_cache[$page->ID]; 602 } else { 603 if ( isset($GLOBALS['page']) && ($page == $GLOBALS['page']->ID) ) 590 wp_cache_add($page->ID, $page, 'pages'); 591 $_page = $page; 592 } else { 593 if ( isset($GLOBALS['page']) && ($page == $GLOBALS['page']->ID) ) { 604 594 $_page = & $GLOBALS['page']; 605 elseif ( isset($page_cache[$page]) ) 606 $_page = & $page_cache[$page]; 607 else { 595 wp_cache_add($_page->ID, $_page, 'pages'); 596 } elseif ( $_page = wp_cache_get($page, 'pages') ) { 597 // Got it. 598 } else { 608 599 $query = "SELECT * FROM $wpdb->posts WHERE ID= '$page'"; 609 $ page_cache[$page]= & $wpdb->get_row($query);610 $_page = & $page_cache[$page];600 $_page = & $wpdb->get_row($query); 601 wp_cache_add($_page->ID, $_page, 'pages'); 611 602 } 612 603 } … … 623 614 } 624 615 616 function set_category_path($cat) { 617 $cat->fullpath = '/' . $cat->category_nicename; 618 $path = $cat->fullpath; 619 $curcat = $cat; 620 while ($curcat->category_parent != 0) { 621 $curcat = get_category($curcat->category_parent); 622 $path = '/' . $curcat->category_nicename . $path; 623 } 624 625 $cat->fullpath = $path; 626 627 return $cat; 628 } 629 625 630 // Retrieves category data given a category ID or category object. 626 631 // Handles category caching. 627 632 function &get_category(&$category, $output = OBJECT) { 628 global $ cache_categories, $wpdb;633 global $wpdb; 629 634 630 635 if ( empty($category) ) 631 636 return null; 632 637 633 if ( !isset($cache_categories) )634 update_category_cache();635 636 638 if ( is_object($category) ) { 637 if ( !isset($cache_categories[$category->cat_ID]) ) 638 $cache_categories[$category->cat_ID] = &$category; 639 $_category = & $cache_categories[$category->cat_ID]; 640 } else { 641 if ( !isset($cache_categories[$category]) ) { 639 wp_cache_add($category->cat_ID, $category, 'category'); 640 $_category = $category; 641 } else { 642 if ( ! $_category = wp_cache_get($category, 'category') ) { 642 643 $_category = $wpdb->get_row("SELECT * FROM $wpdb->categories WHERE cat_ID = '$category'"); 643 $cache_categories[$category->cat_ID] = & $_category; 644 } else { 645 $_category = & $cache_categories[$category]; 646 } 644 wp_cache_add($category, $_category, 'category'); 645 } 646 } 647 648 if ( !isset($_category->fullpath) ) { 649 $_category = set_category_path($_category); 650 wp_cache_replace($_category->cat_ID, $_category, 'category'); 647 651 } 648 652 … … 693 697 $category = &get_category($cat_ID); 694 698 return $category->cat_name; 699 } 700 701 function get_all_category_ids() { 702 global $wpdb; 703 704 if ( ! $cat_ids = wp_cache_get('all_category_ids', 'category') ) { 705 $cat_ids = $wpdb->get_col("SELECT cat_ID FROM $wpdb->categories"); 706 wp_cache_add('all_category_ids', $cat_ids, 'category'); 707 } 708 709 return $cat_ids; 695 710 } 696 711 … … 1232 1247 for ($i = 0; $i < count($pages); $i++) { 1233 1248 $page_cache[$pages[$i]->ID] = &$pages[$i]; 1249 wp_cache_add($pages[$i]->ID, $pages[$i], 'pages'); 1234 1250 } 1235 1251 } … … 1244 1260 1245 1261 function update_post_category_cache($post_ids) { 1246 global $wpdb, $category_cache , $cache_categories;1262 global $wpdb, $category_cache; 1247 1263 1248 1264 if ( empty($post_ids) ) … … 1256 1272 WHERE category_id = cat_ID AND post_id IN ($post_ids)"); 1257 1273 1258 if ( !isset($cache_categories) ) 1259 update_category_cache(); 1260 1261 if ( !empty($dogs) ) { 1262 foreach ($dogs as $catt) { 1263 $category_cache[$catt->post_id][$catt->cat_ID] = &$cache_categories[$catt->cat_ID]; 1264 } 1265 } 1274 if ( empty($dogs) ) 1275 return; 1276 1277 foreach ($dogs as $catt) 1278 $category_cache[$catt->post_id][$catt->cat_ID] = &get_category($catt->cat_ID); 1266 1279 } 1267 1280 … … 1323 1336 1324 1337 function update_category_cache() { 1325 global $cache_categories, $wpdb; 1326 if ( $dogs = $wpdb->get_results("SELECT * FROM $wpdb->categories") ): 1327 foreach ($dogs as $catt) 1328 $cache_categories[$catt->cat_ID] = $catt; 1329 1330 foreach ($cache_categories as $catt) { 1331 $curcat = $catt->cat_ID; 1332 $cache_categories[$catt->cat_ID]->fullpath = '/' . $cache_categories[$catt->cat_ID]->category_nicename; 1333 while ($cache_categories[$curcat]->category_parent != 0) { 1334 $curcat = $cache_categories[$curcat]->category_parent; 1335 $cache_categories[$catt->cat_ID]->fullpath = '/' . $cache_categories[$curcat]->category_nicename . $cache_categories[$catt->cat_ID]->fullpath; 1336 } 1337 } 1338 return true; 1339 else : 1340 return false; 1341 endif; 1342 } 1343 1344 function clean_user_cache($id) { 1345 global $cache_userdata; 1346 1347 if ( isset( $cache_userdata[$id] ) ) 1348 unset( $cache_userdata[$id] ); 1338 return true; 1349 1339 } 1350 1340 … … 2124 2114 if ( $cur->meta_value != $meta_value ) 2125 2115 $wpdb->query("UPDATE $wpdb->usermeta SET meta_value = '$meta_value' WHERE user_id = '$user_id' AND meta_key = '$meta_key'"); 2116 2117 wp_cache_delete($user_id, 'users'); 2118 // FIXME: Need to delete username keyed cache object. 2126 2119 } 2127 2120 -
trunk/wp-includes/pluggable-functions.php
r3004 r3011 28 28 if ( !function_exists('get_userdata') ) : 29 29 function get_userdata( $user_id ) { 30 global $wpdb , $cache_userdata;30 global $wpdb; 31 31 $user_id = (int) $user_id; 32 32 if ( $user_id == 0 ) 33 33 return false; 34 34 35 if ( isset( $cache_userdata[$user_id] ) ) 36 return $cache_userdata[$user_id]; 35 $user = wp_cache_get($user_id, 'users'); 36 37 if ( $user ) 38 return $user; 37 39 38 40 if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE ID = '$user_id'") ) 39 return $cache_userdata[$user_id] =false;41 return false; 40 42 41 43 $metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user_id'"); … … 52 54 } 53 55 54 $cache_userdata[$user_id] = $user;55 $cache_userdata[$cache_userdata[$user_id]->user_login] =& $cache_userdata[$user_id];56 57 return $ cache_userdata[$user_id];56 wp_cache_add($user_id, $user, 'users'); 57 wp_cache_add($user->user_login, $user, 'users'); 58 59 return $user; 58 60 } 59 61 endif; … … 96 98 if ( empty( $user_login ) ) 97 99 return false; 98 99 if ( isset( $cache_userdata[$user_login] ) ) 100 return $cache_userdata[$user_login]; 100 101 $userdata = wp_cache_get($user_login, 'users'); 102 if ( $userdata ) 103 return $userdata; 101 104 102 105 if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_login = '$user_login'") ) … … 148 151 } 149 152 150 $login = $wpdb->get_row("SELECT ID, user_login, user_pass FROM $wpdb->users WHERE user_login = '$username'"); 153 $login = get_userdatabylogin($username); 154 //$login = $wpdb->get_row("SELECT ID, user_login, user_pass FROM $wpdb->users WHERE user_login = '$username'"); 151 155 152 156 if (!$login) { -
trunk/wp-includes/registration-functions.php
r2995 r3011 4 4 global $wpdb; 5 5 $username = sanitize_user( $username ); 6 $query = "SELECT user_login FROM $wpdb->users WHERE user_login = '$username'"; 7 $query = apply_filters('username_exists', $query); 8 return $wpdb->get_var( $query ); 6 $user = get_userdatabylogin($username); 7 if ( $user ) 8 return $user->user_login; 9 10 return null; 9 11 } 10 12 … … 50 52 } 51 53 52 clean_user_cache($user_id);53 clean_user_cache($user_login);54 55 54 update_usermeta( $user_id, 'first_name', $first_name); 56 55 update_usermeta( $user_id, 'last_name', $last_name); … … 70 69 $user->set_role(get_settings('default_role')); 71 70 } 71 72 wp_cache_delete($user_id, 'users'); 73 wp_cache_delete($user_login, 'users'); 72 74 73 75 if ( $update ) -
trunk/wp-includes/template-functions-category.php
r2978 r3011 127 127 128 128 function get_category_children($id, $before = '/', $after = '') { 129 global $cache_categories; 130 131 if ( !isset($cache_categories) ) 132 update_category_cache(); 133 134 $c_cache = $cache_categories; // Can't do recursive foreach on a global, have to make a copy 135 $chain = ''; 136 foreach ( $c_cache as $category ) { 129 $cat_ids = get_all_category_ids(); 130 foreach ( $cat_ids as $cat_id ) { 131 if ( $cat_id == $id) 132 continue; 133 134 $category = get_category($cat_id); 137 135 if ( $category->category_parent == $id ) { 138 136 $chain .= $before.$category->cat_ID.$after; -
trunk/wp-settings.php
r2818 r3011 21 21 $HTTP_USER_AGENT = getenv('HTTP_USER_AGENT'); 22 22 unset( $wp_filter, $cache_userdata, $cache_lastcommentmodified, $cache_lastpostdate, $cache_settings, $category_cache, $cache_categories ); 23 24 if ( ! isset($blog_id) ) 25 $blog_id = 1; 23 26 24 27 // Fix for IIS, which doesn't set REQUEST_URI … … 75 78 if ( defined('CUSTOM_USER_META_TABLE') ) 76 79 $wpdb->usermeta = CUSTOM_USER_META_TABLE; 77 80 78 81 // We're going to need to keep this around for a few months even though we're not using it internally 79 82 … … 88 91 $tablepostmeta = $wpdb->postmeta; 89 92 93 if ( file_exists(ABSPATH . 'wp-content/object-cache.php') ) 94 require (ABSPATH . 'wp-content/object-cache.php'); 95 else 96 require (ABSPATH . WPINC . '/cache.php'); 97 98 // For now, disable persistent caching by default. To enable, comment out 99 // the following line. 100 define('DISABLE_CACHE', true); 101 102 wp_cache_init(); 103 90 104 $wp_filters = array(); 91 105 … … 95 109 96 110 $wpdb->hide_errors(); 97 if ( !update_category_cache() && (!strstr($_SERVER['PHP_SELF'], 'install.php') && !defined('WP_INSTALLING')) ) { 111 $db_check = $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = 'siteurl'"); 112 if ( !$db_check && (!strstr($_SERVER['PHP_SELF'], 'install.php') && !defined('WP_INSTALLING')) ) { 98 113 if ( strstr($_SERVER['PHP_SELF'], 'wp-admin') ) 99 114 $link = 'install.php'; … … 195 210 196 211 function shutdown_action_hook() { 212 wp_cache_close(); 197 213 do_action('shutdown'); 198 214 }
Note: See TracChangeset
for help on using the changeset viewer.