WordPress でカテゴリページにアクセスした際に、カテゴリ内の記事を一覧表示する方法。
通常は、トップページなどと同様に記事のタイトルや投稿日時、ボティーが表示されるが、ここではタイトルのみの一覧を表示する。
要はカテゴリページを開いたら、そのカテゴリ以下の全記事を一覧表示したい。
※例としてvicuna.exc テーマの場合
変更前
category.php の該当部分は次のようになっている。
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div id="entry<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <ul> <li><?php the_time(__('Y-m-d (D)', 'vicuna')) ?></li> <li><?php the_category(' | ') ?></li> <?php /* -- ex cng s -- */ vicuna_author_displays(); vicuna_tag_displays(); ?> <?php //if (function_exists('the_tags')) : the_tags('<li>', ' | ', '</li>'); endif; ?> <?php /* -- ex cng e -- */ ?> <?php edit_post_link(__('Edit'), '<li>', '</li>'); ?> </ul> <div> <?php the_content(__('Continue reading', 'vicuna')); ?> </div> <ul> <?php $trackpingCount = get_vicuna_pings_count(); /* -- whisper cng s -- $commentCount = (int) get_comments_number() - (int) $trackpingCount; -- */ $commentCount = (int) get_vicuna_comment_count() - (int) $trackpingCount; /* -- whisper cng e -- */ if ($commentCount > 0 || 'open' == $post->comment_status) : ?> <li><a href="<?php the_permalink() ?>#comments" title="<?php printf(__('Comments on %s'), $title); ?>" rel="nofollow"><?php if ('open' == $post->comment_status) : _e('Comments'); else : _e('Comments (Close)', 'vicuna'); endif; ?></a>: <span><?php echo $commentCount; ?></span></li> <?php else : ?> <li><?php _e('Comments (Close)', 'vicuna'); ?>: <span><?php echo $commentCount; ?></span></li> <?php endif; if ($trackpingCount > 0 || 'open' == $post->ping_status) : ?> <li><a href="<?php the_permalink() ?>#trackback" title="<?php printf(__('Trackbacks to %s'), $title); ?>" rel="nofollow"><?php if ('open' == $post->ping_status) : _e('Trackbacks'); else : _e('Trackbacks (Close)', 'vicuna'); endif; ?></a>: <span><?php echo $trackpingCount; ?></span></li> <?php else : ?> <li><?php _e('Trackbacks (Close)', 'vicuna'); ?>: <span><?php echo $trackpingCount; ?></span></li> <?php endif ?> </ul> </div> <?php endwhile; endif; ?>
スポンサードリンク
変更後
以下のように変更する。
<?php query_posts($query_string . "&order=ASC&orderby=title&showposts=-1"); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div id="entry<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> </div> <?php endwhile; endif; ?>
# この方法だとSQL のlimit に当たる物を取り除いているのど同義だから、あまりにも記事が増えた場合はカテゴリ分けを見なおさないと、負荷がかかるかもしれない
参考文献
- WordPressの基本操作と使い方|WordPressのツボ
コメント
半日悩んでいた一覧表示がここで1分で解決しました!
助かりました。すごく感謝です!!
他にも勉強になりそうな記事がたくさんありそうなので、またお勉強させてください~☆