概要
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);
}
このサンプルでは、カスタムフィールドの値を取得し、表示します。