get_post() – Retrieves post data given a post ID or post object.

You appear to be a bot. Output may be restricted

Description

Retrieves post data given a post ID or post object.

See sanitize_post() for optional $filter values. Also, the parameter `$post`, must be given as a variable, since it is passed by reference.

Usage

$WP_Post|array|null = get_post( $post, $output, $filter );

Parameters

$post
( int|WP_Post|null ) optional – Optional. Post ID or post object. null`, `false`, `0 and other PHP falsey values return the current global post inside the loop. A numerically valid post ID that points to a non-existent post returns `null`. Defaults to global $post.
$output
( string ) optional default: OBJECT – Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT.
$filter
( string ) optional default: raw – Optional. Type of filter to apply. Accepts 'raw', 'edit', 'db', or 'display'. Default 'raw'.

Returns

WP_Post|array|null Type corresponding to $output on success or null on failure. When $output is OBJECT, a WP_Post instance is returned.

Source

File name: wordpress/wp-includes/post.php
Lines:

1 to 34 of 34
function get_post( $post = null, $output = OBJECT, $filter = 'raw' ) {
  if ( empty( $post ) && isset( $GLOBALS['post'] ) ) {
    $post = $GLOBALS['post'];
  }

  if ( $post instanceof WP_Post ) {
    $_post = $post;
  } elseif ( is_object( $post ) ) {
    if ( empty( $post->filter ) ) {
      $_post = sanitize_post( $post, 'raw' );
      $_post = new WP_Post( $_post );
    } elseif ( 'raw' === $post->filter ) {
      $_post = new WP_Post( $post );
    } else {
      $_post = WP_Post::WP_Post::get_instance( $post->ID );
    }
  } else {
    $_post = WP_Post::WP_Post::get_instance( $post );
  }

  if ( ! $_post ) {
    return null;
  }

  $_post = $_post->filter( $filter );

  if ( ARRAY_A === $output ) {
    return $_post->to_array();
  } elseif ( ARRAY_N === $output ) {
    return array_values( $_post->to_array() );
  }

  return $_post;
}
 

 View on GitHub View on Trac