get_page_by_title( string $page_title, string $output = OBJECT, string|array $post_type = 'page' )
Retrieve a page given its title.
Description
If more than one post uses the same title, the post with the smallest ID will be returned. Be careful: in case of more than one post having the same title, it will check the oldest publication date, not the smallest ID.
Because this function uses the MySQL ‘=’ comparison, $page_title will usually be matched as case-insensitive with default collation.
Parameters
- $page_title
-
(string) (Required) Page title.
- $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
- $post_type
-
(string|array) (Optional) Post type or array of post types.
Default value: 'page'
Return
(WP_Post|array|null) WP_Post (or array) on success, or null on failure.
Source
File: wp-includes/post.php
function get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' ) { global $wpdb; if ( is_array( $post_type ) ) { $post_type = esc_sql( $post_type ); $post_type_in_string = "'" . implode( "','", $post_type ) . "'"; $sql = $wpdb->prepare( " SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type IN ($post_type_in_string) ", $page_title ); } else { $sql = $wpdb->prepare( " SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type = %s ", $page_title, $post_type ); } $page = $wpdb->get_var( $sql ); if ( $page ) { return get_post( $page, $output ); } return null; }
Expand full source code Collapse full source code View on Trac View on GitHub
Changelog
Version | Description |
---|---|
3.0.0 | The $post_type parameter was added. |
2.1.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
How to Find WordPress Custom Post Type by Title
This is useful for Custom Post Types. Below, we find the $post array of a Custom Post Type “link” with a title of “World Peace Now”:
This comment was copied from Codex.
It is very important to mention that the function will disregard any post_status so if it finds and old post that is draft, it will show that result. So if you need to filter by post status you better build your own query.
Top ↑
Feedback
It also returns posts that are in trash. — By Amy —
How To Find WordPress Page ID By Title Then Replace the_content()
In this example, we find the page id of “Sample Page” then replace the page’s the_content() with “Hello World!”
Find Page ID to use with exclude in wp_list_pages
This example will return the $page object for the page titled “About”. Then the $page->ID element is used to exclude the About page when listing pages.