Get page id by title?

I’m using the following code to insert the content from another wp page into my main home page.

Is it possible to make it work with a page title instead of an id number?

Read More

Eg. Not $page_id = 518 but $page_id = ‘about’ instead????

$page_id = 518; //Your Page ID
$page_data = get_page( $page_id );
// Displays the title
echo '<h1>'. $page_data->post_title .'</h1>';
// Displays the content
echo apply_filters('the_content', $page_data->post_content);
?>

Related posts

1 comment

  1. There is a function exactly for that:

    get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' );
    

    You can use it like this:

    $page = get_page_by_title( 'Start' );
    

    To get the page from a specific post type:

    $custom = get_page_by_title( 'Start', OBJECT, 'your_custom_post_type' );
    $post   = get_page_by_title( 'Start', OBJECT, 'post' );
    

    Be aware, this function will search in all post statuses. So you might get a draft, a trashed or private post. You should check the result with:

    $status = get_post_status( $page );
    
    if ( 'publish' !== $status )
        return; // do not show unpublished posts
    

    A related function is get_page_by_path():

    $page = get_page_by_path( 'about/contact' );
    

Comments are closed.