has_post_parent()


WordPressのhas_post_parent()関数は、現在の投稿に親投稿が存在するかどうかを確認するために使用されます。

シンタックス

has_post_parent();

戻り値

  • true — 投稿に親が存在する場合
  • false — 投稿に親が存在しない場合

使用例

例 1: 親投稿があるかを確認してメッセージを表示

現在の投稿に親投稿がある場合、指定したメッセージを表示します。

<?php
if ( has_post_parent() ) {
    echo 'この投稿には親投稿があります。';
} else {
    echo 'この投稿には親投稿がありません。';
}
?>

例 2: 親投稿のタイトルを表示

親投稿が存在する場合に、その親投稿のタイトルを取得して表示します。

<?php
if ( has_post_parent() ) {
    $parent_id = wp_get_post_parent_id( get_the_ID() );
    echo '親投稿タイトル: ' . get_the_title( $parent_id );
}
?>

例 3: 親投稿が存在する場合のみ特定のCSSクラスを追加

投稿に親がある場合、HTML要素にカスタムクラスを追加します。

<?php
$class = has_post_parent() ? 'has-parent' : 'no-parent';
echo '<div class="' . $class . '">コンテンツ</div>';
?>

例 4: カスタム条件で親投稿IDを取得

親投稿のIDを確認し、特定のアクションを実行します。

<?php
if ( has_post_parent() ) {
    $parent_id = wp_get_post_parent_id( get_the_ID() );
    if ( $parent_id == get_option( 'page_on_front' ) ) {
        echo '親投稿はフロントページです。';
    }
}
?>

例 5: 親投稿が存在する場合に子ページリストを表示

親投稿がある場合、同じ親を持つ子ページを一覧で表示します。

<?php
if ( has_post_parent() ) {
    $parent_id = wp_get_post_parent_id( get_the_ID() );
    wp_list_pages( array(
        'child_of' => $parent_id,
        'title_li' => '子ページ一覧:',
    ) );
}
?>

注意事項

  • has_post_parent()は現在の投稿IDをデフォルトで使用します。
  • この関数は投稿が親子関係にない場合はfalseを返します。

関連機能: