固定ページのID(数値)を取得
$page_id = get_the_ID();
方法は投稿と同じ。ループ内で使用出来る…となっているが、$post(グローバル変数)を書き換えてない場合に限り、該当のページ内でループ外でも投稿IDを取得出来る。
Creators Clipホームページ制作のための備忘録的サンプルコード集
2020.11.23(更新日:2021.02.13)
固定ページってわかりにくい表現だけど、多分ブログで使用する場合は「プロフィール」とか「お問い合わせ」ページなどが該当するはず。要するに「1ページ完結型」のページかと。
投稿と同じ扱いで出来る事も多々あるので、うっかり同じ方法で「出来ない!」とならないために整理。
$page_id = get_the_ID();
方法は投稿と同じ。ループ内で使用出来る…となっているが、$post(グローバル変数)を書き換えてない場合に限り、該当のページ内でループ外でも投稿IDを取得出来る。
$obj = get_page_by_path( $slug );
$page_id = $obj->ID;
固定ページのスラッグを引数としてget_page_by_pathで取得。注意点は親子関係がある子のページの場合。
タームスラッグを「lunch」とし、その親を「meal」とした場合の例。
$page_slug = get_query_var('pagename');
引数が「slug」ではなく「pagename」なのが注意点。(ややっこしい)
$page_slug = get_post_field( 'post_name', $page_id );
グローバル変数を使ってもID、スラッグ取得は可能だが「これだけあれば他は不要」って場合はこれでいいかと。
$ancestors = get_post_ancestors( $page_id );
引数には$post(投稿オブジェクト)でも可。近い順から配列で親のIDを返してくれるので便利。
値が無い場合は空の配列が返却される。
$pages = get_pages();
$pages_children = get_page_children( $page_id, $pages );
子ページの情報が配列で返却される。値が無い場合は空の配列が返却される。
他にもWP_Queryでpost_parentを指定して持ってくるとかいろいろあるので目的に合わせて変える。
投稿と同じなので以下参照。ただし固定ページはデフォルトで「抜粋」は存在しないので注意。
以下をfunctions.phpに。取得の仕方は投稿と同じ。
add_post_type_support( 'page', 'excerpt' );