WordPress.org

Make WordPress Core

Changeset 2421


Ignore:
Timestamp:
03/09/05 03:16:30 (9 years ago)
Author:
ryan
Message:

Page caching fixes. Mosquito bugs 920, 927, and 934.

Location:
trunk/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/functions.php

    r2418 r2421  
    998998    global $wpdb, $cache_pages; 
    999999 
     1000    $dates = ",UNIX_TIMESTAMP(post_modified) AS time_modified"; 
     1001    $dates .= ",UNIX_TIMESTAMP(post_date) AS time_created"; 
     1002 
    10001003    if (!isset($cache_pages[$page_id])) { 
    1001         $cache_pages[$page_id] = $wpdb->get_row("SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE ID = '$page_id'"); 
     1004        $cache_pages[$page_id] = $wpdb->get_row("SELECT ID, post_title, post_name, post_parent $dates FROM $wpdb->posts WHERE ID = '$page_id'"); 
    10021005    } 
    10031006 
     
    10111014 
    10121015    while ($page->post_parent != 0) { 
    1013         $page = $wpdb->get_row("SELECT post_name, post_parent FROM $wpdb->posts WHERE ID = '$page->post_parent'"); 
     1016        if (isset($cache_pages[$page->post_parent])) { 
     1017            $page = $cache_pages[$page->post_parent]; 
     1018        } else { 
     1019            $page = $wpdb->get_row("SELECT ID, post_title, post_name, post_parent $dates FROM $wpdb->posts WHERE ID = '$page->post_parent'"); 
     1020            $cache_pages[$page->ID] = $page; 
     1021        } 
    10141022        $uri = urldecode($page->post_name) . "/" . $uri; 
    10151023    } 
  • trunk/wp-includes/template-functions-post.php

    r2420 r2421  
    265265    global $wpdb, $cache_pages; 
    266266 
    267     if (!isset($cache_pages) || empty($cache_pages)) { 
    268  
    269         parse_str($args, $r); 
    270  
    271         if (!isset($r['child_of'])) $r['child_of'] = 0; 
    272         if (!isset($r['sort_column'])) $r['sort_column'] = 'post_title'; 
    273         if (!isset($r['sort_order'])) $r['sort_order'] = 'ASC'; 
    274  
    275         $exclusions = ''; 
    276         if (!empty($r['exclude'])) { 
    277             $expages = preg_split('/[\s,]+/',$r['exclude']); 
    278             if (count($expages)) { 
    279                 foreach ($expages as $expage) { 
    280                     $exclusions .= ' AND ID <> ' . intval($expage) . ' '; 
    281                 } 
     267    parse_str($args, $r); 
     268 
     269    if (!isset($r['child_of'])) $r['child_of'] = 0; 
     270    if (!isset($r['sort_column'])) $r['sort_column'] = 'post_title'; 
     271    if (!isset($r['sort_order'])) $r['sort_order'] = 'ASC'; 
     272 
     273    $exclusions = ''; 
     274    if (!empty($r['exclude'])) { 
     275        $expages = preg_split('/[\s,]+/',$r['exclude']); 
     276        if (count($expages)) { 
     277            foreach ($expages as $expage) { 
     278                $exclusions .= ' AND ID <> ' . intval($expage) . ' '; 
    282279            } 
    283280        } 
    284  
    285         $dates = ",UNIX_TIMESTAMP(post_modified) AS time_modified"; 
    286         $dates .= ",UNIX_TIMESTAMP(post_date) AS time_created"; 
    287      
    288         $post_parent = ''; 
    289         if ($r['child_of']) { 
    290             $post_parent = ' AND post_parent=' . $r['child_of'] . ' '; 
    291         } 
    292      
    293         $pages = $wpdb->get_results("SELECT " . 
    294           "ID, post_title, post_name, post_parent " . 
    295           "$dates " . 
    296           "FROM $wpdb->posts " . 
    297           "WHERE post_status = 'static' " . 
    298           "$post_parent" . 
    299           "$exclusions " . 
    300           "ORDER BY " . $r['sort_column'] . " " . $r['sort_order']); 
    301  
    302         $cache_pages = array(); 
    303         if (count($pages)) { 
    304             foreach($pages as $page) { 
    305                 $cache_pages[$page->ID] = $page; 
    306             } 
    307         } 
    308     } 
    309  
    310     return $cache_pages; 
     281    } 
     282 
     283    $dates = ",UNIX_TIMESTAMP(post_modified) AS time_modified"; 
     284    $dates .= ",UNIX_TIMESTAMP(post_date) AS time_created"; 
     285     
     286    $post_parent = ''; 
     287    if ($r['child_of']) { 
     288        $post_parent = ' AND post_parent=' . $r['child_of'] . ' '; 
     289    } 
     290     
     291    $pages = $wpdb->get_results("SELECT " . 
     292                                                            "ID, post_title, post_name, post_parent " . 
     293                                                            "$dates " . 
     294                                                            "FROM $wpdb->posts " . 
     295                                                            "WHERE post_status = 'static' " . 
     296                                                            "$post_parent" . 
     297                                                            "$exclusions " . 
     298                                                            "ORDER BY " . $r['sort_column'] . " " . $r['sort_order']); 
     299 
     300    // Update page cache. 
     301    if (count($pages)) { 
     302        foreach($pages as $page) { 
     303            $cache_pages[$page->ID] = $page; 
     304        } 
     305    } 
     306 
     307    if ( empty($pages) ) 
     308        $pages = array(); 
     309 
     310    return $pages; 
    311311} 
    312312 
Note: See TracChangeset for help on using the changeset viewer.