检索给定帖子ID或帖子对象的帖子数据。

原型

get_post( int|WP_Post|null $post = null, string $output = OBJECT, string $filter = 'raw' )

描述

有关可选的$ filter值,请参阅sanitize_post()。此外,参数$ post必须作为变量给出,因为它是通过引用传递的。

参数

$post (int|WP_Post|null) (Optional)  帖子ID或帖子对象。默认为全球$ post。

$output (string) (Optional)  所需的返回类型。 OBJECT,ARRAY_A或ARRAY_N之一,分别对应于WP_Post对象,关联数组或数值数组。

$filter (string) (Optional)  要应用的过滤器类型。接受’raw’,‘edit’,‘db’或’display’。

返回值

(WP_Post|array|null)  成功时输出对应于$ output,失败时输入null。当$ output是OBJECT时,a

源文件

路径:wp-includes/post.php

<?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;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/get_post/