概要
wp_get_single_post関数は、WordPressで特定の投稿の情報を取得するために使用されます。この関数は、特定の投稿IDを指定して、その投稿に関連する詳細情報を取得する際に便利です。主に以下のようなシナリオで使用されます:
- 特定の投稿のデータを表示する際
- カスタムクエリで特定の投稿を取得する際
- リンクを生成するために投稿情報を取得する際
- 投稿のメタデータを取得する際
- 投稿のカスタムフィールドを処理する際
- 特定の投稿の著者情報を取得する際
- 投稿のカテゴリやタグを取得する際
- フロントエンドでの条件付き表示を行う際
この関数は以下の構文で使用されます:
wp_get_single_post( $id, $filter );
パラメータ
$id(int) : 取得したい投稿のID。$filter(string) : 投稿情報のフィルタリング方法。デフォルトは ‘raw’。
戻り値
WP_Postオブジェクト、もしくは投稿が存在しない場合はnull。
関連する関数
使用可能なバージョン
- WordPress 2.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 |
サンプルコード
サンプル1: 特定の投稿を取得して表示する
$post_id = 1; // 投稿IDを指定
$post = wp_get_single_post($post_id);
if ($post) {
echo '<h1>' . esc_html($post->post_title) . '</h1>';
echo '<div>' . esc_html($post->post_content) . '</div>';
}
このサンプルは、特定の投稿IDに基づいて投稿のタイトルとコンテンツを取得し、表示します。
サンプル2: 投稿のメタデータの取得
$post_id = 2; // 投稿IDを指定
$post = wp_get_single_post($post_id);
if ($post) {
$meta_value = get_post_meta($post_id, 'custom_meta_key', true);
echo '投稿のメタデータ: ' . esc_html($meta_value);
}
このサンプルは、指定された投稿のメタデータを取得し、表示します。
サンプル3: 投稿の著者情報を表示する
$post_id = 3; // 投稿IDを指定
$post = wp_get_single_post($post_id);
if ($post) {
$author = get_the_author_meta('display_name', $post->post_author);
echo '著者: ' . esc_html($author);
}
この例では、投稿の著者名を取得して表示します。
サンプル4: 渡した投稿IDが存在しない場合の処理
$post_id = 999; // 存在しない投稿IDを指定
$post = wp_get_single_post($post_id);
if ($post) {
echo esc_html($post->post_title);
} else {
echo '指定の投稿が見つかりません。';
}
このサンプルでは、投稿が存在しない場合にエラーメッセージを表示します。
サンプル5: カスタムフィールドを取得して表示する
$post_id = 4; // 投稿IDを指定
$post = wp_get_single_post($post_id);
if ($post) {
$custom_field = get_post_meta($post_id, 'another_custom_field', true);
echo 'カスタムフィールドの値: ' . esc_html($custom_field);
}
このサンプルでは、カスタムフィールドの値を取得し、表示します。