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

概要

wp_get_post_parent_id関数は、指定された投稿の親投稿IDを取得するための関数です。この関数は、特にカスタム投稿タイプや階層構造を持つ投稿において、親子関係の管理が必要な場面でよく使われます。以下のような機能実装で使用されることが一般的です。

  1. ページの親子関係を表示する
  2. 親ページのリダイレクト設定
  3. サブメニューの表示など階層的なナビゲーション
  4. 投稿の詳細情報のカスタマイズ
  5. ページの親情報をもとにしたSEO対策
  6. 親投稿が削除された際のエラーハンドリング
  7. 投稿間の関係を示すウィジェットの作成
  8. テーマのカスタマイザーでの階層的な設定

構文

wp_get_post_parent_id( int $post_id )

パラメータ

  • post_id (int): 親の投稿IDを取得したい投稿のID。

戻り値

  • 親投稿が存在する場合はその投稿のID、存在しない場合は0が返されます。

関連する関数

使用可能なバージョン

  • この関数はWordPress 2.0以降で使用可能です。

コアファイルのパス

  • wp-includes/post.php

サンプルコード

サンプル1: 親の投稿IDを取得して表示する

$post_id = 123; // 任意の投稿ID
$parent_id = wp_get_post_parent_id( $post_id );
echo '親の投稿ID: ' . $parent_id;

このコードは、指定した投稿IDの親投稿IDを取得し、それを表示します。

サンプル2: 入力された投稿の親が存在するか確認する

$post_id = 123; // 任意の投稿ID
if ( wp_get_post_parent_id( $post_id ) ) {
    echo 'この投稿には親があります。';
} else {
    echo '親投稿は存在しません。';
}

このコードは、指定された投稿が親を持っているかどうかを確認し、その結果に応じてメッセージを表示します。

サンプル3: 親投稿のタイトルを取得する

$post_id = 123; // 任意の投稿ID
$parent_id = wp_get_post_parent_id( $post_id );
if ( $parent_id ) {
    $parent_post = get_post( $parent_id );
    echo '親の投稿タイトル: ' . $parent_post->post_title;
}

このコードは、指定した投稿の親投稿のIDを取得し、その親投稿のタイトルを表示します。

サンプル4: 親投稿が削除された場合のハンドリング

$post_id = 123; // 任意の投稿ID
$parent_id = wp_get_post_parent_id( $post_id );
if ( $parent_id && !get_post( $parent_id ) ) {
    echo '親投稿が削除されました。';
}

このコードは、指定した投稿の親が存在せず、削除された場合にメッセージを表示します。

サンプル5: サブページのリダイレクトの実装

add_action('template_redirect', function() {
    if ( is_page() ) {
        $parent_id = wp_get_post_parent_id( get_the_ID() );
        if ( $parent_id ) {
            wp_redirect( get_permalink($parent_id) );
            exit;
        }
    }
});

このコードは、ページが表示される際に親ページが存在する場合、親ページにリダイレクトします。

この関数のアクションでの使用可能性

アクション 使用可能性
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

非推奨または削除されたバージョン

  • 現在、wp_get_post_parent_id関数は特定のバージョンで非推奨や削除されていません。

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


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