概要
get_page_by_title 関数は、指定されたページタイトルに基づいてページ情報を取得するための関数です。この関数は、特定のページをプログラムmatically取得したり、表示したりしたい場合に非常に便利です。以下のような機能の実装時によく使用されます:
- 特定のページのコンテンツを表示する場合
- ナビゲーションメニューの生成
- コンテンツの条件付き表示
- ショートコードでページを取得して表示
- カスタムテンプレートの生成
- オプションページの取得
- ページの存在チェック
- リダイレクト用のページ情報取得
構文
get_page_by_title( $title, $output, $filter );
パラメータ
$title(string) 必須: 取得したいページのタイトル。$output(string) 任意: 取得したデータの形式。デフォルトはOBJECT。$filter(string|bool) 任意: フィルタリングの方法。デフォルトは''。
戻り値
WP_Post オブジェクト (ページが見つかった場合)、または null (ページが見つからない場合)。
関連する関数
使用可能なバージョン
get_page_by_title 関数は、WordPress 2.9.0以降で利用可能です。
コアファイルのパス
wp-includes/post.php
サンプルコード
サンプルコード1: ページタイトルからページ情報を取得
$page = get_page_by_title('サンプルページ');
if ( $page ) {
echo 'ページID: ' . $page->ID;
}
このコードは、タイトル「サンプルページ」のページ情報を取得し、そのIDを表示します。
サンプルコード2: カスタム出力でページ情報を取得
$page = get_page_by_title('サンプルページ', 'ARRAY_A');
if ( $page ) {
echo 'ページタイトル: ' . $page['post_title'];
}
この例では、ページを連想配列形式で取得し、ページタイトルを表示しています。
サンプルコード3: ページの存在確認
$page = get_page_by_title('存在しないページ');
if ( !$page ) {
echo 'ページが見つかりませんでした。';
}
このサンプルコードは、タイトルが「存在しないページ」のページを検索し、存在しない場合にはメッセージを表示します。
サンプルコード4: フィルタを用いてページ情報を取得
$page = get_page_by_title('フィルタページ', OBJECT, 'post');
if ( $page ) {
// 特定の投稿タイプの場合の処理
}
このコードでは、指定された投稿タイプに基づいてページ情報を取得し、その後の処理を行うことができます。
サンプルコード5: 複数ページの情報を取得
$titles = ['ページ1', 'ページ2', 'ページ3'];
foreach ( $titles as $title ) {
$page = get_page_by_title($title);
if ( $page ) {
echo 'ページタイトル: ' . $page->post_title . ' (ID: ' . $page->ID . ')<br>';
}
}
このサンプルでは、複数のページタイトルから、一つずつページ情報を取得して表示しています。
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| 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_title 関数は、特定の WordPress バージョンでは非推奨または削除されていません。