get_page_by_title( string $page_title, string $output = OBJECT, string|array $post_type = ‘page’ )
Retrieve a page given its title.
Description 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 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 Return
(WP_Post|array|null) WP_Post (or array) on success, or null on failure.
Source Source
File: wp-includes/post.php
5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 |
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 ); } } |
Expand full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
3.0.0 | The $post_type parameter was added. |
2.1.0 | Introduced. |