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
(int|WP_Post|null) (Optional) Post ID or post object. Defaults to global $post.
Default value: null
- $output
(string) (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
(string) (Optional) Type of filter to apply. Accepts 'raw', 'edit', 'db', or 'display'.
Default value: 'raw'
Return
(WP_Post|array|null) Type corresponding to $output on success or null on failure. When $output is OBJECT, a WP_Postinstance is returned.
Source
File: wp-includes/post.php
Changelog
| Version | Description |
|---|---|
| 1.5.1 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
'WEB > WP(WordPress)' 카테고리의 다른 글
| Code To Integrate WordPress Media Uploader In Plugin or Theme (0) | 2018.04.10 |
|---|---|
| How to insert data using wpdb (0) | 2018.04.09 |
| Using WPDB in standalone script? (0) | 2018.04.08 |
| Get user role by ID Wordpress (0) | 2018.04.08 |
| What action should I hook into when adding roles and capabilities? (0) | 2018.04.06 |
For reference, WP_Post OBJECT contains following fields:
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] =>)Expand full source code
Wouldn’t it be better practice to use get_the_title(..) in this case? directly accessing the post object’s data member would bypass applying filters and enforcing protected and private settings, unless that’s explicitly desired.
To get the title for a post with ID 7:
$post_7= get_post( 7 );$title=$post_7->post_title;Alternatively, specify the $output parameter:
$post_7= get_post( 7, ARRAY_A );$title=$post_7['post_title'];If you need special things—[shortcodes], paragraph tags, anything exciting—in the content, you should apply the filters as opposed to using do_shortcode().
$post= get_post( 42 );$output= apply_filters('the_content',$post->post_content );For Reference : WP_Post Object has following properties, which are returned by get_post().
Member Variable Variable Type NotesID int The ID of the postpost_author string The post author's user ID (numeric string)post_name string The post's slugpost_type string See Post Typespost_title string The title of the postpost_date string Format: 0000-00-00 00:00:00post_date_gmt string Format: 0000-00-00 00:00:00post_content string The full content of the postpost_excerpt string User-defined post excerptpost_status string See get_post_statusforvaluescomment_status string Returns: { open, closed }ping_status string Returns: { open, closed }post_password string Returnsemptystringifno passwordpost_parent int Parent Post ID (default0)post_modified string Format: 0000-00-00 00:00:00post_modified_gmt string Format: 0000-00-00 00:00:00comment_count string Number of comments on post (numeric string)menu_order string Order valueasset through page-attribute when enabled (numeric string. Defaults to 0)Expand full source code
If you have a shortcode in the content you should use:
$post= get_post( 4304,ARRAY_A );$output= do_shortcode($post['post_content']);If you want to get a post by slug, you could do a new WP_Query, or use the get_page_by_path function: https://developer.wordpress.org/reference/functions/get_page_by_path/
You’ll need to use the post_type if you are not getting a page.
To Get author of the Post
$post_info= get_post( 10 );$author=$post_info->post_author;