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


*1 get_the_category(

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-28 (金) 21:19:57 (3962d)