概要
get_page_by_path
関数は、指定されたページ名の投稿情報を取得するために使用されます。この関数は、特定のパスで投稿を検索し、対応する投稿オブジェクトを返します。ほとんどのWordPressのテーマやプラグイン開発において、ページやカスタム投稿を取得する際に非常に便利です。例えば、以下のような場面で活用されます:
- 特定のスラッグに基づいてページ情報を取得
- ナビゲーションメニュー生成時に使用するページの情報を取得
- カスタムテンプレートで特定のページを呼び出す際に利用
- 特定のページを自動的に選択するウィジェットやショートコードの実装
- SEOプラグインでメタデータを取得する際のページ情報取得
- URLリライトやカスタムURL構造を持つアプリケーションでの取得
- フィルターやアクションフックを通じての特定の投稿表示
- AJAX処理で特定ページのデータ取得
構文
get_page_by_path( string $page_path, bool $output = OBJECT, string $post_type = 'page' );
パラメータ
$page_path
(string): 検索するページのパス(スラッグ)。$output
(bool, optional): 返されるオブジェクトの種類。OBJECT
かARRAY_A
を指定でき、デフォルトはOBJECT
です。$post_type
(string, optional): 取得したい投稿の種類を指定(例: ‘page’, ‘post’, ‘custom_post_type’)。デフォルトは’page’です。
戻り値
指定されたパスに一致する投稿オブジェクト(WP_Post
)またはnull
。
関連する関数
使用可能なバージョン
get_page_by_path
は、WordPress 1.5.0以降で使用可能です。
コアファイルのパス
wp-includes/post.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | 〇 |
wp | 〇 |
template_redirect | |
get_header | |
wp_head |
非推奨または削除されたバージョン
現在、非推奨または削除されたバージョンはありません。
サンプルコード
ここでは、get_page_by_path
関数を使用した5つのサンプルコードを紹介します。
サンプル1: ページ情報を取得
このサンプルは、特定のスラッグを持つ投稿(ページ)情報を取得します。
$page = get_page_by_path('sample-page');
if ($page) {
echo $page->post_title;
}
出典: https://developer.wordpress.org/reference/functions/get_page_by_path/
サンプル2: カスタム投稿タイプからページを取得
カスタム投稿タイプのスラッグを使用して、そのページを取得する例です。
$page = get_page_by_path('my-custom-post', OBJECT, 'my_custom_post_type');
if ($page) {
echo $page->post_content;
}
出典: https://developer.wordpress.org/reference/functions/get_page_by_path/
サンプル3: スラッグからページIDを取得
スラッグからIDを取得し、そのページを表示する方法です。
$page = get_page_by_path('contact');
if ($page) {
echo 'Page ID: ' . $page->ID;
}
出典: https://developer.wordpress.org/reference/functions/get_page_by_path/
サンプル4: テンプレート内での条件分岐
テンプレートファイルで特定のページを表示するための条件分岐です。
if (get_page_by_path('about')) {
include 'template-about.php';
}
出典: https://developer.wordpress.org/reference/functions/get_page_by_path/
サンプル5: AJAXリクエスト中にページ情報を取得
AJAX処理内で取得する例です。
add_action('wp_ajax_get_page', 'ajax_get_page');
function ajax_get_page() {
$page = get_page_by_path('faq');
wp_send_json($page);
}
出典: https://developer.wordpress.org/reference/functions/get_page_by_path/