概要
wp_get_post_parent_id
関数は、指定された投稿の親投稿IDを取得するための関数です。この関数は、特にカスタム投稿タイプや階層構造を持つ投稿において、親子関係の管理が必要な場面でよく使われます。以下のような機能実装で使用されることが一般的です。
- ページの親子関係を表示する
- 親ページのリダイレクト設定
- サブメニューの表示など階層的なナビゲーション
- 投稿の詳細情報のカスタマイズ
- ページの親情報をもとにしたSEO対策
- 親投稿が削除された際のエラーハンドリング
- 投稿間の関係を示すウィジェットの作成
- テーマのカスタマイザーでの階層的な設定
構文
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
関数は特定のバージョンで非推奨や削除されていません。