wp/ ツリー状の目次を表示する
カテゴリ別記事一覧を表示
http://www.adphic.jp/wp/templatetag-tips/tips-categorymenu/
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*1 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ファィルで、カテゴリーページとシングルページに同じ記事の一覧を表示させます。
注意 : カテゴリーが親子関係の場合、親カテゴリーからリンク移動で小カテゴリーすべての記事一覧を表示しますが、小カテゴリーの記事からリンク移動すると、小カテゴリーだけの一覧表示に変わります。
WordPress?-SITE<参考サイト&詳細サイト> 記事の参考サイト : Igaloglog RELATED POSTS<関連記事> ループに特定の条件を与えて、情報の取得をコントロール
カテゴリーの名前を記事へのリンク付きで表示
使用するテンプレートをincludeのテンプレートタグで、強制的に指定する
TAGS<タグ> テンプレートタグ使用例|ループ制御▲ PAGE TOP