CMSブログソフトWordPressの基本操作と使い方
WordPress3.0.4 ADPHIC Co,.Ltd. SINCE.2008.10.15

HOMEIllustratorのツボadphicContact-Mail

CONTENTS
ループとループの制御用タグ
AD LINK
Fotolia
500万点以上のロイヤリティフリー画像が、なんと100円から使えるイメージバンク。印刷レベルの写真でも500円。ちょっと素材が必要なときに便利です。
TIPS
CATEGORY : ループとループの制御用タグ | UPDATE : 2008.10.20

ループに特定の条件を与えて、
情報の取得をコントロール

表示カテゴリーの絞り込みや表示記事数、並べ替えなどループによる情報の取得条件を指定します。パラメータの数も多く、同一 PHP 内で複数のループを設置できますので、複雑なページデザインを可能にします。

TEMPLATE-TAG<テンプレートタグ>
ループをコントロールする
ループの前に使用

<?php query_posts('A&B&C…クエリ形式で記述'); ?>

PARAMETER<パラメータ>
  1. cat : 表示する記事をカテゴリー(ID数値)で指定。
    記述例:<?php query_posts('cat=2,3,4'); ?>
    記述例:<?php query_posts('cat=-5'); ?>
    ※マイナスで指定すると除外されます。
  2. category_name : 表示する記事をカテゴリー(スラッグ名)で指定。
    記述例:<?php query_posts('cat=news,information'); ?>
  3. category__and:複数のカテゴリーを指定。指定されたカテゴリーすべてに属する記事を取得します。
    記述例:<?php query_posts(array('category__and'=>array(2,3))); ?>
  4. category__in:複数のカテゴリーを指定。指定されたカテゴリーのいずれかに属する記事を取得します。子カテゴリー以下は含まれません。
    記述例:<?php query_posts(array('category__and'=>array(2,3,4))); ?>
  5. category__not_in:複数のカテゴリーを指定。指定されたカテゴリーのいずれにも属さない記事を取得します。
    記述例:<?php query_posts(array('category__not_in'=>array(2,3))); ?>
  6. p : 表示する投稿記事をナンバー(ID数値)で指定。
    記述例:<?php query_posts('p=123'); ?>
  7. name : 表示する投稿記事を(スラッグ名)で指定。
    記述例:<?php query_posts('name=profile'); ?>
  8. page_id : 表示するページ記事をナンバー(ID数値)で指定。
    記述例:<?php query_posts('page_id=456'); ?>
  9. pagename : 表示するページ記事をスラッグ(スラッグ名)で指定。
    記述例:<?php query_posts('pagename=toppage'); ?>
  10. showposts : 表示する記事の件数を指定(非推奨)
    数字 : 指定件数分の記事を表示。
    -1 : すべての記事を表示。
    記述例:<?php query_posts('showposts=5'); ?>
  11. posts_per_page : 表示する記事の件数を指定
    数字 : 指定件数分の記事を表示。
    -1 : すべての記事を表示。
    ※表示件数の優先順位は showposts→posts_per_page→ 管理画面の設定。
    記述例:<?php query_posts('posts_per_page=5'); ?>
  12. order : 表示する並び順を指定。
    ASC : 昇順で表示。
    DESC : 降順で表示(初期設定)
    記述例:<?php query_posts('order=ASC'); ?>
  13. orderby : 並び順の基準を指定。
    date : 日付順で並べる(初期設定)
    modified : 更新日順で並べる。
    category : カテゴリー順で並べる 。
    title : タイトル順で並べる。
    ID : ID順で並べる。
    comment_count:コメントの数順で並べる。
    author:投稿者のID順で並べる。
    rand:ランダムにする。
    parent : 親ベージのID順で並べる(ページ記事のみ有効)
    menu_order:ページ投稿画面の、ページ属性で指定した順で並べる(ページ記事のみ有効)
    meta_value_num:カスタムフィールドの入力された「値」の順に並べる。
    none:並び変えを指定しない。
    記述例:<?php query_posts('orderby=title'); ?>
  14. offset:先頭から表示しない記事の数を指定。
    記述例:<?php query_posts('offset=1'); ?>

※パラメータは一部を掲載しています。

TEMPLATE-TAG EXAMPLE<記述例>
<?php query_posts('cat=17&order=ASC&orderby=title&showposts=-1'); ?>
<?php if(have_posts()) : while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink(); ?>" target="_blank"><?php the_title('<li>','</li>'); ?></a>
<?php endwhile; endif; ?>

パラメータ:カテゴリーナンバー17に属する記事をタイトル (title) の昇順 (ASC) に、すべて (-1) 表示する設定。

参考書籍 : WordPress テンプレートタグ虎の巻 エ・ビスヒロ・テック・ラボ著

注意:query_postsは、以降のループをすべてを同一条件で表示します。例えばcat=2の記事をqueryで取得すると、その後のループはcat=2の記事だけを表示します。ループの後に wp_reset_query を記述することによって、query を初期設定に戻せます。

TEMPLATE-TAG<テンプレートタグ>
query_postsをクリアし初期設定に戻す
ループの後に記述

<?php wp_reset_query(); ?>

TEMPLATE-TAG EXAMPLE<記述例>
<?php query_posts('cat=17&order=ASC&orderby=title&showposts=-1'); ?>
<?php if(have_posts()) : while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink(); ?>" target="_blank"><?php the_title('<li>','</li>'); ?></a>
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
INDEX