サポート » 使い方全般 » 記事一覧に子ページを反映させず、親ページ内に載せたい。

  • カスタム投稿での親ページ・子ページの一覧表示について質問です。
    phpもWPも初心者レベルなので、うまく伝わるかどうか不安ですがよろしくお願いします。

    使用しているテーマ「twenty ten」を基準に書かせていただきます。

    ■やりたいこと

    1. 通常エントリーとは別に、カスタム投稿タイプで「movie」を作成。
    2. Homeとなる「index.php」にエントリー順に表示(通常・カスタム一緒に表示。
    3. ループの際「movie」だけ少し表示を変えたい。
    4. カスタム投稿「movie」のエントリーには子ページも存在。
    5. 子にはアイキャッチを設定。
    6. 子ページが投稿された場合、Homeにはすでに投稿されている親ページの中に反映
    7. 親ページに反映された子ページはリストタグで囲まれたアイキャッチを表示、クリックで子ページに直接リンク

    表示としては

    2012.04.26 カテゴリー:Art
    タイトル名
    本文
    ———–
    2012.04.24 カテゴリー:Food
    タイトル名
    本文
    ———–
    2012.04.23 カスタム投稿:Movie
    タイトル名
    本文

    ———–
    2012.04.22 カテゴリー:Food
    タイトル名
    本文
    ———–
    2012.04.21 カスタム投稿:Movie
    タイトル名
    本文

    という感じです。

    ■やってみた事
    「loop.php」のループ開始のタグを以下に変えました。

    <?php $paged = get_query_var('paged'); ?>
    <?php query_posts( array(
        'post_type' => 'any',
        'paged' => $paged
    	));
    ?>
    ・
    ・
    ・
    <?php while ( have_posts() ) : the_post(); ?>

    ■疑問点
    「post_type」を「any」にしたら固定ページも出てきましたが
    「any」は通常post、カスタム投稿、固定ページ全てをさすんでしょうか?

    これで通常エントリー、カスタム投稿タイプのエントリー両方が表示されました。

    次にカスタム投稿「Movie」の時だけ表示を変えたいのでループ内を以下に変えました。

    <?php while ( have_posts() ) : the_post(); ?>
    <?php if ( get_post_type() === 'movie') : ?>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    ・
    カスタム投稿タイプが「movie」の時の表示
    ・
    </div>
    <?php else : ?>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    ・
    それ以外のエントリー、固定ページの表示
    ・
    </div>

    これで通常エントリーと「movie」で異なってレイアウトでループ表示ができました。

    ところがカスタム投稿「movie」で親ページ・子ページ両方の一覧が表示されます。

    ———–
    2012.04.23 カスタム投稿:Movie
    子ページb(親ページA)
    本文
    ———–
    2012.04.23 カスタム投稿:Movie
    子ページa(親ページA)
    本文
    ———–
    2012.04.21 カスタム投稿:Movie
    親ページA
    本文

    「$post->post_parent」などをつかって分岐させれば・・・
    というところまでわかりましたが、ここからどうすればわからなくなり困っています。

    何卒宜しくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    mclclさん、こんにちは。

    「any」は通常post、カスタム投稿、固定ページ全てをさすんでしょうか?

    他に画像などのアップロードファイルも含まれるかと思われます。

    ところがカスタム投稿「movie」で親ページ・子ページ両方の一覧が表示されます。

    固定ページの子ページを省いてよければ、query_postsのパラメーターに

    'post_parent' => 0

    を追加すれば、子ページは消えるはずです。
    固定ページは、すべて含みつつカスタム投稿は子ページを含めないという指定はできません。また、ループ中の分岐で表示させないこともできますが、1ページあたりの表示数がまちまちになります。

    >jim912さん

    こんにちは。

    'post_parent' => 0

    で子ページのループがなくなりました!
    ありがとうございます!

    あとは、loop.phpでカスタム投稿での親ページが表示された際、
    子ページのサムネイルを表示させるだけなので、
    ショートコード?とかを使って色々試してみます!

    そちらが解決すればこの投稿は「解決済み」にさせていただきます。
    ありがとうございます!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「記事一覧に子ページを反映させず、親ページ内に載せたい。」には新たに返信することはできません。