$ cd wordpress/wp-includes
$ grep "function &get_post" *
classes.php: function &get_posts() {
functions.php:function &get_post(&$post, $output = OBJECT) {
https://trac.www.ads-software.com/file/tags/1.5.1.3/wp-includes/functions.php
// Retrieves post data given a post ID or post object.
// Handles post caching.
function &get_post(&$post, $output = OBJECT) {
global $post_cache, $wpdb;
if ( empty($post) ) {
if ( isset($GLOBALS['post']) )
$post = & $GLOBALS['post'];
else
$post = null;
} elseif (is_object($post) ) {
if (! isset($post_cache[$post->ID]))
$post_cache[$post->ID] = &$post;
$post = & $post_cache[$post->ID];
} else {
if (isset($post_cache[$post]))
$post = & $post_cache[$post];
else {
$query = "SELECT * FROM $wpdb->posts WHERE ID=$post";
$post_cache[$post] = & $wpdb->get_row($query);
$post = & $post_cache[$post];
}
}
if ( $output == OBJECT ) {
return $post;
} elseif ( $output == ARRAY_A ) {
return get_object_vars($post);
} elseif ( $output == ARRAY_N ) {
return array_values(get_object_vars($post));
} else {
return $post;
}
}