get_page_by_title()

You are here:

get_page_by_title( string $page_titlestring $output = OBJECTstring|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.


Top ↑

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’


Top ↑

Return Return

(WP_Post|array|null) WP_Post (or array) on success, or null on failure.


Top ↑

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 );
    }
}


Top ↑

Changelog Changelog

Changelog
Version Description
3.0.0 The $post_type parameter was added.
2.1.0 Introduced.
Was this article helpful?
Dislike 0
Views: 16