• 解決済 235durham

    (@235durham)


    【質問】
    トップページに、特定カテゴリの記事だけを最新10件表示させる方法を教えていただけないでしょうか?

    【状況】
    現在、テーマ配布サイトからインストールしたあるテーマを使っていますが、
    そのテーマでは、トップページの仕様が、
    「全てのカテゴリの記事が、1カテゴリにつき1件ずつ表示される」となっています。
    これを、
    「特定カテゴリ(category=1)の記事だけを最新10件表示させる」にはどうしたらよいでしょうか?

    なお、記事一覧部分には、
    ・記事タイトル
    ・記事の投稿写真のサムネイル
    ・記事の「抜粋」の文章
    ・readmore
    を出してきたいと思っています。

    以下に、テーマにあるもともとの記述と、当方が考えてみた記述を書いております。アドバイスをいただけましたら幸いです。

    —–(ここからテーマにあるもともとの記述)

    <?php
    $categories = get_categories(‘hide_empty=1’);
    foreach ($categories as $category) :
    query_posts(‘showposts=1&cat=’.$category->cat_ID);
    if (have_posts()) : the_post();
    ?>

    <!– begin post –>
    <div class=”post”>
    <h2>cat_ID); ?>”><?php echo $category->name ?></h2>
    <p class=”date”><?php the_author_posts_link(); ?> on <?php the_time(‘m j, Y’) ?> | <?php comments_popup_link(‘No Comments’, ‘1 Comment’, ‘% Comments’); ?></p>
    <div class=”thumb”>“><?php dp_attachment_image($post->ID, ‘medium’, ‘alt=”‘ . $post->post_title . ‘”‘); ?></div>
    <div class=”entry”><?php the_excerpt();?></div>
    “>Read More
    </div>
    <!– end post –>

    <?php endif; endforeach; ?>

    ————–(テーマにあるもともとの記述ここまで)

    ————-(ここから、当方が考えてみた記述。しかしこれでは、カテゴリ1にある最新記事のみが繰り返し表示されてしまいます。)

    <?php
    $posts_data = get_posts(‘numberposts=10&category=1’);
    foreach ($posts_data as $post) :
    query_posts(‘showposts=10&cat=1’);
    if (have_posts()) : the_post();
    ?>

    <!– begin post –>
    <div class=”post”>
    <h2>“><?php the_title(); ?></h2>
    <p class=”date”><?php the_author_posts_link(); ?> on <?php the_time(‘m j, Y’) ?> | <?php comments_popup_link(‘No Comments’, ‘1 Comment’, ‘% Comments’); ?></p>
    <div class=”thumb”>“><?php dp_attachment_image($post->ID, ‘medium’, ‘alt=”‘ . $post->post_title . ‘”‘); ?></div>
    <div class=”entry”><?php the_excerpt();?></div>
    “>Read More
    </div>
    <!– end post –>

    <?php endif; endforeach; ?>

    =========(当方が考えた記述はここまで)

    長くなりましたが、以上です。
    何かアドバイスをいただけないでしょうか?よろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • shokun0803

    (@shokun0803)

    <?php
    $categories = get_categories('hide_empty=1');
     ここでカテゴリーの一覧を取得して
    foreach ($categories as $category) :
     配列から変数に渡しながら
    query_posts('showposts=1&cat='.$category->cat_ID);
     順番にカテゴリーIDを取得しながら1件ずつ取得して
    if (have_posts()) : the_post();
     表示をカテゴリーの数だけ繰り返す
    ?>

    このような動き?なので、カテゴリーのIDが決まっているなら

    <?php
    // $categories = get_categories('hide_empty=1');
    // foreach ($categories as $category) :(ソース後半のendforeachもコメント)
    query_posts('showposts=10&cat=1');
    if (have_posts()) : the_post();
    ?>

    なんて単純な考えではだめでしょうか?検証はしていませんが;)

    トピック投稿者 235durham

    (@235durham)

    shokun0803さま

    返信いただき誠にありがとうございます。
    教えていただいた方法で試しましたが、やはり、「カテゴリ1の最新記事のみが10件繰り返し表示」されてしまいます。うーん、どうすればよいでしょう。。
    とはいえ、phpの理解が乏しいため、詳しく書いていただきまして勉強になりました。ありがとうございます。

    ほかに方法がわかりましたら、教えていただければ幸いです。

    ごめんなさい、またまた未検証なのですが、

    query_posts('showposts=10&cat=1');

    query_posts('posts_per_page=10&cat=1');

    としてみてはどうでしょう。
    参考

    そのテーマでは、トップページの仕様が、
    「全てのカテゴリの記事が、1カテゴリにつき1件ずつ表示される」となっています。
    これを、
    「特定カテゴリ(category=1)の記事だけを最新10件表示させる」にはどうしたらよいでしょうか?

    これは、

    「全てのカテゴリの記事が、1カテゴリにつき1件ずつ表示される」が、そのうち「特定カテゴリ(category=1)の記事だけを最新10件表示させる」という意味でしょうか?

    もし、そうなら、以下を参照してください。違ったら無視してください。

    質問文が若干ややこしい表現だったかもしれません。 shokun0803 さんが提示されているのは、「全てのカテゴリの記事が、1カテゴリにつき1件ずつ表示される」が、それをやめ、代わりに「特定カテゴリ(category=1)の記事だけを最新10件表示させる」コードだからです。

    <?php
    $categories = get_categories('hide_empty=1');
    foreach ($categories as $category) :
        if ( $category->cat_ID == 1  ) {
            query_posts('showposts=10&cat=1);
        } else {
            query_posts('showposts=1&cat='.$category->cat_ID);
        }
    ?>
    <?php if (have_posts()): while (have_posts()): the_post(); ?>
    ......
    <?php endwhile; endif; ?>
    <?php
    endforeach;
    wp_reset_query();
    ?>
    トピック投稿者 235durham

    (@235durham)

    返信が遅くなり、申しわけありませんでした。
    shokun0803さまの方法でうまくいきました!お世話になりました。
    mizubeさま、たしかに質問文がややこしかったですね。
    ご回答いただいて感謝しております。
    ありがとうございました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「トップページに特定カテゴリの記事を最新10件表示する方法」には新たに返信することはできません。