説明
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_page_by_path() | Function | WordPress Developer Resources

コメント