• カスタム投稿で「階層」を「ture」にすれば、入れ子構造にすることができますが、
    「親ページ」の一覧に加えて、「子ページ」のみ一覧を表示したいのですが、良い方法はないでしょうか?

    (例) カスタム投稿「fruits」—————-

    親「りんご」本文あり
    -子「ふじ」本文あり
    -子「シナノゴールド」本文なし
    -子「きおう」本文あり

    ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

    りんご

    ——————————————

    単なるカスタム投稿の一覧なら
    <?php wp_list_pages(‘title_li=&post_type=fruits’); ?>
    で出力できるのですが、これはこれで全部出力されてしまいますし、あと一部の子ページは本文を空にしておいて条件分岐でリンクのありなしを切り替えようと思っています。

    いろいろ調べた物の手がかりがなく・・・もし何か妙案がありましたら宜しくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • LABE

    (@latobeam)

    wp_list_pages() には parent というパラメータがあり、これで指定したIDの投稿を「直接の」親に持つ投稿のリストを取得できるようです。
    例えば $post_id に親にしたい投稿のIDを代入して

    <?php wp_list_pages('title_li=&parent='.$post_id.'&post_type=fruits'); ?>

    でいかがでしょうか。

    • この返信は7年、 6ヶ月前にLABEが編集しました。

    wp_list_pages() なら、リンクの有無を切り替えるのは walker 引数ですね。
    http://web.mt-systems.jp/archives/727 のブログ投稿が参考になるかもしれません。

    wp_list_pages() を使わなくて良ければ、こんなコードはどうでしょう(検証していませんが)

    <?php $args = array(
    	'nopaging' => true,
    	'post_type' => 'fruits',
    	'post_parent' => 親カスタム投稿のID,
    );
    $myposts = get_posts( $args ); ?>
    <ul>
    <?php foreach ( $myposts as $p1 ):
    	if ( empty( $p1->post_content ) ):  // 本文が空ならタイトルだけ
    		$before = '';
    		$after = '';
    	else:  // a タグでタイトルを囲む
    		$before = '<a href="' . get_permalink( $p1 ) . '">';
    		$after = '</a>';
    	endif; ?>
    <li><?php echo $before, $get_the_title( $p1 ), $after; ?></li>
    <?php endforeach; ?>
    </ul>
    

    便乗で。
    基本的にカスタム投稿自体は親子関係を持たせずフラットで使った方がいいのじゃないでしょうか。
    スレ主さんのケースだと子のみのページにして、カスタム分類(例えば種類)りんごとしてのグループ化を図ればよいのではないでしょうか。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタム投稿のサブページ(子ページ)一覧を表示したい」には新たに返信することはできません。