2013.09.14

子カテゴリのときだけ逆順で表示する

旅カテゴリのところは、過去の旅をクリックしたときに、
帰ってきた後の部分から読み始めて、クリックして遡らないといけなくて、読みにくかった。

そこで、旅カテゴリ自体をクリックしたときは最新を先頭に表示し、
それぞれの旅をクリックしたときは、その旅の最初である過去を先頭に表示するようにしたかった。

親カテゴリのテンプレートを使う に書いたように、
旅カテゴリはどれを選んでも、専用のカテゴリファイル(category-42.php)を使うようにしたので、
編集したファイルはその1つだけである。

で、逆順に表示するのは query_posts($query_string.’&order=ASC’) を while の前に入れればいいらしいので、
以下のように、親カテゴリ(旅カテゴリ)をクリックしたときは DESC (最新が先頭) にして、
子カテゴリ(2013.08: ケニア・タンザニア等)をクリックしたときは ASC (過去が先頭) になるようにした。

<?php
  if(is_category(’42’)): query_posts($query_string.’&order=DESC’);
  else: query_posts($query_string.’&order=ASC’);
  endif
?>
<?php while (have_posts()) : the_post();?>

ページ移動のときも Newer | Older という順で表示していたのだが、そこも逆にしないといけない。

<?php if(is_category(’42’)) : ?>
  <?php previous_posts_link(‘« Newer’) ?> <?php next_posts_link(‘Older »’) ?>
<?php else : ?>
  <?php previous_posts_link(‘« Older’) ?> <?php next_posts_link(‘Newer »’) ?>
<?php endif; ?>

これで少し読みやすくなったかな。


2013.09.14, 18:27 / WordPress
子カテゴリのときだけ逆順で表示する はコメントを受け付けていません。

Comments are closed.