サポート » テーマ » カテゴリーに属する記事のみを表示する

  • 解決済 sizueda

    (@sizueda)


    カテゴリーページを開いたときに、カテゴリーの最新記事のみを大きく表示し、それ以外の記事は小さく表示したいのですが、下記コードですと、全てのカテゴリーが表示されてします。

    <div id="featured">
           <?php if(! $paged || $paged < 2) :  ?>
              <?php if (have_posts()) :  ?>
                 <?php query_posts('showposts=1'); while (have_posts()) : the_post();  ?>
    
                   <a>" title="<?php echo get_the_excerpt(); ?>"><?php the_post_thumbnail('featured-image');  ?></a>
                     <h3><a>"><?php the_title(); ?></a></h3>
                      <div class="featured-cat"><?php the_category(', ') ?></div>
                       <div class="featured-info">
                       <?php $myExcerpt = get_the_excerpt(); $tags = array("<p>", "</p>"); $myExcerpt = str_replace($tags, "", $myExcerpt); echo $myExcerpt; ?>
                       <a>">Continue Reading</a>
                        </div><!-- /.featured-info -->
    
                          <?php endwhile;?>
                          <?php wp_reset_query(); ?>
                      <?php endif; ?>
                <?php endif; ?>
    </div><!-- /#featured -->
    
    <div id="posts">
            <?php if(! $paged || $paged < 2) :  ?>
                    <?php  if (have_posts()) : ?>
                        <?php query_posts('posts_per_page=9&offset=1'); while ( have_posts() ) : the_post(); ?>
                     <?php include("incl/post.php"); ?>
                         <?php endwhile;?>
                          <?php wp_reset_query(); ?>
                    <?php endif; ?>
    
             <?php else : ?>
    
                    <?php  if (have_posts()) : ?>
                          <?php while ( have_posts() ) : the_post(); ?>
                                    <?php include("incl/post.php"); ?>
    
                          <?php endwhile;?>
                          <?php wp_reset_query(); ?>
                    <?php endif; ?>
            <?php endif; ?>

    何分、php初心者で、いろいろ検索してみたのですが、うまくいきません。
    ご教授いただけますよう、よろしくお願いいたします。。。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 書き方はいくつかありますが、元のクエリを’global $query_string’で利用できるようにするといいかもしれません。
     
    テンプレートタグ/query_posts- Codex 日本語版

    オリジナルクエリの保持(ページングなど)
    デフォルトでは query_posts を実行すると、引数で指定した変数を除きページング,カテゴリー,日付などの現在のページのクエリ変数はすべて上書きされます。
    オリジナルのクエリを保持したい場合は、query_poats の引数にオリジナルクエリの配列をマージしてください:

     
    上記の他にページ上部の注意事項も参照してください。
     

    global $query_string; // 前の方で1回だけグローバル宣言
    /* 略 */
    query_posts($query_string . 'showposts=1'); // 略

     
    もう一箇所も同じように’query_posts($query_string . ‘~’)としてみてください。

    ありがとうございます!

    <?php global $query_string;  ?>
    
                 <?php if(! $paged || $paged < 2) :  ?>
    
                      <?php if (have_posts()) :  ?>
                          <?php query_posts($query_string . 'showposts=1'); while (have_posts()) : the_post();   ?>

    と書き換えてみたのですが、カテゴリーページに何も表示されなくなってしまいました。。。

    ‘echo $query_string;’で$query_stringの内容を確認してみてください。
     
    ‘&’が抜けていましたね・・・
     

    query_posts($query_string . '&showposts=1');

     
    ‘showposts’もまだ使用できるようですが、推奨されないパラメータなので代わりに’posts_per_page’を指定した方がいいかもしれません。

    ありがとうございます!
    無事に表示されました!!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カテゴリーに属する記事のみを表示する」には新たに返信することはできません。