Title: WP_Post::get_instance
Published: April 25, 2014
Last modified: April 28, 2025

---

# WP_Post::get_instance( int $post_id ): 󠀁[WP_Post](https://developer.wordpress.org/reference/classes/wp_post/)󠁿|false

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#wp--skip-link--target)

Retrieve [WP_Post](https://developer.wordpress.org/reference/classes/wp_post/) instance.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#parameters)󠁿

 `$post_id`intrequired

Post ID.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#return)󠁿

 [WP_Post](https://developer.wordpress.org/reference/classes/wp_post/)|false Post
object, false otherwise.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#source)󠁿

    ```php
    public static function get_instance( $post_id ) {
    	global $wpdb;

    	$post_id = (int) $post_id;
    	if ( $post_id <= 0 ) {
    		return false;
    	}

    	$_post = wp_cache_get( $post_id, 'posts' );

    	if ( ! $_post ) {
    		$_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = %d LIMIT 1", $post_id ) );

    		if ( ! $_post ) {
    			return false;
    		}

    		$_post = sanitize_post( $_post, 'raw' );
    		wp_cache_add( $_post->ID, $_post, 'posts' );
    	} elseif ( empty( $_post->filter ) || 'raw' !== $_post->filter ) {
    		$_post = sanitize_post( $_post, 'raw' );
    	}

    	return new WP_Post( $_post );
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-post.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/class-wp-post.php#L232)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wp-post.php#L232-L256)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#related)󠁿

| Uses | Description | 
| [wp_cache_add()](https://developer.wordpress.org/reference/functions/wp_cache_add/)`wp-includes/cache.php` |

Adds data to the cache, if the cache key doesn’t already exist.

  | 
| [WP_Post::__construct()](https://developer.wordpress.org/reference/classes/wp_post/__construct/)`wp-includes/class-wp-post.php` |

Constructor.

  | 
| [sanitize_post()](https://developer.wordpress.org/reference/functions/sanitize_post/)`wp-includes/post.php` |

Sanitizes every post field.

  | 
| [wpdb::get_row()](https://developer.wordpress.org/reference/classes/wpdb/get_row/)`wp-includes/class-wpdb.php` |

Retrieves one row from the database.

  | 
| [wp_cache_get()](https://developer.wordpress.org/reference/functions/wp_cache_get/)`wp-includes/cache.php` |

Retrieves the cache contents from the cache by key and group.

  | 
| [wpdb::prepare()](https://developer.wordpress.org/reference/classes/wpdb/prepare/)`wp-includes/class-wpdb.php` |

Prepares a SQL query for safe execution.

  |

[Show 2 more](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#)

| Used by | Description | 
| [WP_Post::filter()](https://developer.wordpress.org/reference/classes/wp_post/filter/)`wp-includes/class-wp-post.php` |

{@Missing Summary}

  | 
| [get_post()](https://developer.wordpress.org/reference/functions/get_post/)`wp-includes/post.php` |

Retrieves post data given a post ID or post object.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_post/get_instance/?output_format=md#changelog)󠁿

| Version | Description | 
| [3.5.0](https://developer.wordpress.org/reference/since/3.5.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_post%2Fget_instance%2F)
before being able to contribute a note or feedback.