admin管理员组

文章数量:1125064

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?

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

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?

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);
?>
Share Improve this question asked May 25, 2013 at 8:18 speedypancakespeedypancake 5552 gold badges10 silver badges26 bronze badges 0
Add a comment  | 

2 Answers 2

Reset to default 6

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

Function get_page_by_title() is deprecated. Use WP_Query instead or try something like this:

/**
     * Retrieves a link to a page object based on page title  
     * @param $title string Page title
     * @return $link Page object permalink
     */
    function get_page_object( $title ) {
       $array_of_objects = get_posts([
            'title' => $title,
            'post_type' => 'page',
        ]);
        $id = $array_of_objects[0]; 
        $id = $id->ID;
        $link = get_permalink($id); 
        return $link;
    }

本文标签: Get page id by title