ワードプレスのwp_get_single_post関数の使用方法・解説

概要

wp_get_single_post関数は、WordPressで特定の投稿の情報を取得するために使用されます。この関数は、特定の投稿IDを指定して、その投稿に関連する詳細情報を取得する際に便利です。主に以下のようなシナリオで使用されます:

  1. 特定の投稿のデータを表示する際
  2. カスタムクエリで特定の投稿を取得する際
  3. リンクを生成するために投稿情報を取得する際
  4. 投稿のメタデータを取得する際
  5. 投稿のカスタムフィールドを処理する際
  6. 特定の投稿の著者情報を取得する際
  7. 投稿のカテゴリやタグを取得する際
  8. フロントエンドでの条件付き表示を行う際

この関数は以下の構文で使用されます:

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);
}

このサンプルでは、カスタムフィールドの値を取得し、表示します。

この関数について質問する


上の計算式の答えを入力してください