4月 072011

query_posts() 関数を使えば、それ以降で始まるループ内に対して様々な条件を付けることが可能です。

<?php if(have_posts()) : while (have_posts()) : the_post(); ?>

ループが始まる場合、必ず ↑ このような記述があります。ここからループが始まります。

query_posts() 関数は+で条件を付け加えたいときに、この「直前」に記述します。

<?php query_posts(‘A&B&C’); ?>

A&B&C のところに条件を書き込みます。

今回は、アーカイブの表示件数のみを15にしたいと思います。

その場合、

posts_per_page (表示する記事の件数を指定する)

を使います。

アーカイブのみに反映させるために、記述するのはarchive.phpに行います。

<?php query_posts(‘posts_per_page=15′); ?>

これで、1ページ15件ずつの表示になりました。

さらにこの状態で、表示する並び順を指定するには、

<?php query_posts(‘order=ASC&posts_per_page=15′); ?>

order=ASC を加えて「&」でつなぐことで複数の条件が有効となります。

道理で言えば、これで問題ないのですが、このまま使うと、ページ送り(「次へ」とか「前へ」とか)の部分で問題が発生します。

残念なことに、今表示しているページがどこのページなのか、php側では判断できないため、ページ送りの次へを押しても、次の10件に行かず、最初の10件を表示するだけの状態です。

コレを解決するのに便利な方法があります。

query_postsの引数の先頭に「$query_strings」を入れて「.」でつなげてあげるだけです。

&スタートにすることも忘れてはいけません。

例えば、1ページに10記事表示したい場合の記述は、

<?php query_posts($query_string.’&posts_per_page=10′); ?>

こうなります。

15記事にしたいばあいは、10を15に変えるだけです。

これはアーカイブ(年・月)ページや、カテゴリーページなどいろんなところで応用が利くので知っておくと便利だと思います。

query_posts() 関数を使うときは、先頭に「$query_strings」を必ず付けましょう。

よく使う引数は・・・

  • year=
    4桁の年(例:2011)
  • monthnum= 
    月(1〜12)
  • car=
    (カテゴリー ID)

&を入れることで、「●●且つ○○」という用に使うことができます。

<参考記事>


関連記事

Trackback URL

管理者承認後に公開されます。リンクと感想は必須でお願いします

Posted by admin
QLOOKアクセス解析