web-dev-qa-db-ja.com

タイトルでページIDを取得しますか?

次のコードを使って、他のwpページのコンテンツをメインのホームページに挿入します。

ID番号の代わりにページ title で動作させることは可能ですか?

例えば。 $ page_id = 518ではなく$ page_id = 'about'ではなく????

$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);
?>
2
speedypancake

そのための関数があります。

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

あなたはこのようにそれを使うことができます:

$page = get_page_by_title( 'Start' );

特定の投稿タイプからページを取得するには

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

注意してください、この関数は all postステータスを検索します。ですから、下書き、ゴミ箱への投稿、または私用投稿を受け取ることができます。結果を確認する必要があります。

$status = get_post_status( $page );

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

関連する関数はget_page_by_path()です。

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