固定ページのページIDをスラッグ名から取得する

カスタマイズ
WordPressカテゴリー
Pocket

固定ページのページIDを、スラッグ名から取得する方法です。

例えばトップページに特定の固定ページの内容を表示させたい時などに利用できます。

get_page_by_path を使う

get_page_by_path()では指定したスラッグ名ページのWP_Postを取得します。
関数リファレンス/get page by path【WordPress Codex 日本語版】

※WP_Post のメンバー変数はCodexを参照してください。
クラスリファレンス/WP Post【WordPress Codex 日本語版】

そして取得した情報からIDを取り出します。

// $pageID に取得したいページIDの数値が反映されます

$pageID = get_page_by_path('固定ページのスラッグ');
$pageID = $pageID->ID;

 get_post() で指定できるのは投稿 IDですので、この方法でページIDを取得して各種戻り値を活用することができるようになります。

【例】お問い合わせページの内容をほかのページにも表示する

例えば、お問合せフォームを設定した「お問い合わせページ」(スラッグ”contact” )を各固定ページに設置したいといった場合は下記のようになります。

<?php
$pageID = get_page_by_path('contact');
$pageID = $pageID->ID;

$PageContent = get_post( $pageID );
$PageContent = $PageContent -> post_content; //固定ページの内容

echo $PageContent;
?>

ページIDを使っていないので、スラッグさえ同じにすれば他のテーマにも流用することができます。