当前浏览:首页 / WordPress函数 / get_post()

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

检索给定ID或对象的文章数据

postmore...


描述

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


参数

$post

(int|WP_Post|null) (可选) Post ID或Post对象。nullfalse0和其他PHP 假值将返回循环内的当前全局$post。ID为有效数字但指向的文章不存在,返回null。默认为全局$post。

默认值: null

$output

(string) (可选) 所需的返回类型。OBJECT、ARRAY_A或ARRAY_N中的一个,分别对应于WP_Post对象、关联数组或数字数组。

默认值: OBJECT

$filter

(string) (可选) 要应用的过滤类型,接受“raw”、“edit”、“db”或“display”。

默认值: 'raw'


返回

(WP_Post|array|null) 成功时返回类型取决于$output的值,失败则null。当$output为OBJECT时,将返回一个WP_Post实例。



源码

查看源码 官方文档


更新日志

版本描述
1.5.1开始引入

使用示例

  • 示例1

    作为参考,WP_Post对象包含以下字段:

    WP_Post Object
    (
        [ID] =>
        [post_author] =>
        [post_date] => 
        [post_date_gmt] => 
        [post_content] => 
        [post_title] => 
        [post_excerpt] => 
        [post_status] =>
        [comment_status] =>
        [ping_status] => 
        [post_password] => 
        [post_name] =>
        [to_ping] => 
        [pinged] => 
        [post_modified] => 
        [post_modified_gmt] =>
        [post_content_filtered] => 
        [post_parent] => 
        [guid] => 
        [menu_order] =>
        [post_type] =>
        [post_mime_type] => 
        [comment_count] =>
        [filter] =>
    )
    
  • 示例2

    使用get_the_title(..)等不是更好的做法吗在这种情况下?除非明确需要,否则直接访问post对象的数据成员将绕过应用过滤器和强制执行受保护和私有设置。

  • 示例3

    如果您需要特殊的内容-[短代码]、段落标记、内容中任何令人兴奋的内容,您应该应用过滤器,而不是使用do_shortcode()。

    $post   = get_post( 42 );
    $output =  apply_filters( 'the_content', $post->post_content );
    
  • 示例4

    要获取ID为7的文章标题,请执行以下操作:

    $post_7 = get_post( 7 ); 
    $title = $post_7->post_title;
    

    或者,指定$output参数:

    $post_7 = get_post( 7, ARRAY_A );
    $title = $post_7['post_title'];
    
  • 示例5

    如果要按slug获取文章,可以执行新的WP_Query,或使用get_page_by_path函数

    如果没有获取页面,则需要使用post_type。

  • 示例6

    仅供参考:WP_Post 对象具有以下属性,这些属性由get_post()返回。

    Member Variable Variable Type 	Notes
    ID 	        int 	The ID of the post
    post_author 	string 	The post author's user ID (numeric string)
    post_name 	string 	The post's slug
    post_type 	string 	See Post Types
    post_title 	string 	The title of the post
    post_date 	string 	Format: 0000-00-00 00:00:00
    post_date_gmt 	string 	Format: 0000-00-00 00:00:00
    post_content 	string 	The full content of the post
    post_excerpt 	string 	User-defined post excerpt
    post_status 	string 	See get_post_status for values
    comment_status 	string 	Returns: { open, closed }
    ping_status 	string 	Returns: { open, closed }
    post_password 	string 	Returns empty string if no password
    post_parent 	int 	Parent Post ID (default 0)
    post_modified 	string 	Format: 0000-00-00 00:00:00
    post_modified_gmt 	string 	Format: 0000-00-00 00:00:00
    comment_count 	string 	Number of comments on post (numeric string)
    menu_order 	string 	Order value as set through page-attribute when enabled (numeric string. Defaults to 0) 
    
  • 示例7

    获取文章作者

    $post_info = get_post( 10 );
    $author = $post_info->post_author;
    
  • 示例8

    如果内容中有短代码,则应使用:

    $post = get_post( 4304,ARRAY_A );
    $output =  do_shortcode($post['post_content']);