Make WordPress Core

Changeset 3289


Ignore:
Timestamp:
12/11/2005 06:01:19 PM (20 years ago)
Author:
ryan
Message:

get_post(), get_page() fixes from skeltoac. fixes #2057

File:
1 edited

Legend:

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

    r3286 r3289  
    560560            $_post = null;
    561561    } elseif ( is_object($post) ) {
     562        if ( 'static' == $post->post_status )
     563            return get_page($post, $output);
    562564        if ( !isset($post_cache[$post->ID]) )
    563565            $post_cache[$post->ID] = &$post;
    564566        $_post = & $post_cache[$post->ID];
    565567    } else {
    566         if ( isset($post_cache[$post]) )
     568        if ( $_post = wp_cache_get($post, 'pages') )
     569            return get_page($_post, $output);
     570        elseif ( isset($post_cache[$post]) )
    567571            $_post = & $post_cache[$post];
    568572        else {
    569573            $query = "SELECT * FROM $wpdb->posts WHERE ID = '$post' LIMIT 1";
    570             $post_cache[$post] = & $wpdb->get_row($query);
    571             $_post = & $post_cache[$post];
     574            $_post = & $wpdb->get_row($query);
     575            if ( 'static' == $_post->post_status )
     576                return get_page($_post, $output);
     577            $post_cache[$post] = & $_post;
    572578        }
    573579    }
     
    611617        }
    612618    } elseif ( is_object($page) ) {
     619        if ( 'static' != $page->post_status )
     620            return get_post($page, $output);
    613621        wp_cache_add($page->ID, $page, 'pages');
    614622        $_page = $page;
     
    617625            $_page = & $GLOBALS['page'];
    618626            wp_cache_add($_page->ID, $_page, 'pages');
     627        } elseif ( $_page = $GLOBALS['post_cache'][$page] ) {
     628            return get_post($page, $output);
    619629        } elseif ( $_page = wp_cache_get($page, 'pages') ) {
    620630            // Got it.
     
    622632            $query = "SELECT * FROM $wpdb->posts WHERE ID= '$page' LIMIT 1";
    623633            $_page = & $wpdb->get_row($query);
     634            if ( 'static' != $_page->post_status )
     635                return get_post($_page, $output);
    624636            wp_cache_add($_page->ID, $_page, 'pages');
    625637        }
Note: See TracChangeset for help on using the changeset viewer.