get_page_by_path() の使い方|説明・引数・注意点

説明

get_page_by_path() は、スラッグ(パス)から、投稿や固定ページを取得する関数です。

基本構文

get_page_by_path( string $page_path, string $output = OBJECT, string|array $post_type = 'page' ): WP_Post|array|null

引数

  • $page_path:スラッグ。階層は parent/child
  • $output:返却形式
  • $post_type:投稿タイプ(既定は page)

戻り値

見つかれば投稿オブジェクト、なければ null。

使い方(サンプル)

$page = get_page_by_path( 'about' );
if ( $page ) {
	echo get_permalink( $page );
}

注意点

  • 既定は固定ページです。投稿を探すなら post_type を指定します。
  • タイトルで探す get_page_by_title() は WordPress 6.2 以降で非推奨です。

実務での使いどころ

  • スラッグ(パス)から、固定ページや投稿を取得するとき。
  • コードの中で、特定の固定ページの情報を使うとき。

よくあるミスと対処

  • 存在しないパスでは null が返る。確認せずに使う。
  • $post_type の既定は page で、通常の投稿は探せない。
  • スラッグを後から変更すると、取得できなくなる。

NG例

$p = get_page_by_path( 'news-1' ); // 既定では、固定ページだけが対象

OK例

$p = get_page_by_path( 'news-1', OBJECT, 'post' );
if ( $p ) {
	echo esc_html( $p->post_title );
}

使い分け早見表

やりたいこと 使うもの
スラッグから取得 get_page_by_path()
IDから取得 get_post()
URLからIDを取得 url_to_postid()

関連項目

get_post()、url_to_postid()

公式リファレンス:get_page_by_path() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました