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

HOMEIllustratorのツボadphicContact-Mail

CONTENTS
ちょっと便利な使い方
  • 複数のループとoffsetの非表示機能で、デザインのバリエーションを広げる
  • RSS配信を利用して、外部サイトの最新更新情報の一覧を表示する
  • トップページにquery_postsで、表示条件を指定して投稿記事の一覧を表示する
  • query_postsで、カテゴリーとシングルページでカテゴリ別記事一覧を表示する
  • 使用するテンプレートをincludeのテンプレートタグで、強制的に指定する
  • AD LINK
    Fotolia
    500万点以上のロイヤリティフリー画像が、なんと100円から使えるイメージバンク。印刷レベルの写真でも500円。ちょっと素材が必要なときに便利です。
    TIPS
    CATEGORY : ちょっと便利な使い方 | UPDATE : 2010.12.27

    query_postsで、
    カテゴリーとシングルページで
    カテゴリ別記事一覧を表示する

    <?php query_posts(); ?> はループの出力条件を指定する関数で、使えるパラメータも多い。ページ表示をコントロールするには不可欠だか、なかなか手強い。
    複数のカテゴリーを同じPHPテンプレートで記事を表示し、その記事が属するカテゴリーだけの記事一覧を表示し、シングルページへ移動してもそのまま一覧を表示させる方法です。

    WordPressのツボの、左カラムのカテゴリー記事一覧もphp query_postsを使ってコントロールしています。

    STEP.1

    カテゴリーページで同一カテゴリー記事の一覧を取得

    if 関数を使用し、カテゴリーページを表示中の場合、記事のカテゴリーナンバーを取得して同一カテゴリーの記事一覧を表示させます。

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

    パラメータは、order=ASC&orderby=title:タイトル昇順に、showposts=-1:属する記事すべてをリスト形式で表示します。

    しかしこれだけでは if 関数を削除しても、シングルページに移動すると記事の一覧は表示されません。

    STEP.2

    シングルページでも同一カテゴリー記事の一覧を表示させる

    表示している記事のカテゴリーIDを取得し、クエリに代入する方法で記事一覧を表示させます。

    TEMPLATE-TAG EXAMPLE<記述例>
    <?php if(is_single()): ?>
    <?php foreach((get_the_category()) as $cat) {$cat_id = $cat->cat_ID;}
    $nowcategory='cat='.$cat_id.'&order=ASC&orderby=title&showposts=-1';
    query_posts($nowcategory); ?>
    <ul>
    <?php if(have_posts()) : while (have_posts()) : the_post(); ?>
    <a href="<?php the_permalink(); ?>"><?php the_title('<li>','</li>'); ?></a>
    <?php endwhile; endif; ?>
    </ul>

    STEP.1とSTEP.2のテンプレートタグを併記し if 関数で分岐させることで、同一のPHPファィルで、カテゴリーページとシングルページに同じ記事の一覧を表示させます。

    注意 : カテゴリーが親子関係の場合、親カテゴリーからリンク移動で小カテゴリーすべての記事一覧を表示しますが、小カテゴリーの記事からリンク移動すると、小カテゴリーだけの一覧表示に変わります。

    INDEX