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 : 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