get_post( int|WP_Post|null $post = null, string $output = OBJECT, string $filter = 'raw' )
Retrieves post data given a post ID or post object.
Description
See sanitize_post() for optional $filter values. Also, the parameter $post
, must be given as a variable, since it is passed by reference.
Parameters
- $post
-
(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 returnsnull
. Defaults to global $post.Default value: null
- $output
-
(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 value: OBJECT
- $filter
-
(Optional) Type of filter to apply. Accepts 'raw', 'edit', 'db', or 'display'. Default 'raw'.
Default value: 'raw'
Return
(WP_Post|array|null) Type corresponding to $output on success or null on failure.<br> When $output is OBJECT, a WP_Post
instance is returned.
Source
File: wp-includes/post.php
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::get_instance( $post->ID );
}
} else {
$_post = WP_Post::get_instance( $post );
}
if ( ! $_post )
return null;
$_post = $_post->filter( $filter );
if ( $output == ARRAY_A )
return $_post->to_array();
elseif ( $output == ARRAY_N )
return array_values( $_post->to_array() );
return $_post;
}
Changelog
Version | Description |
---|---|
1.5.1 | Introduced. |