query_postsで固定ページをpost記事のように一覧表示をする方法 – WordPress
TENPARA.NETのリニューアル用テーマを作成していた時に
記事はテンプレート用、固定記事はニュース用っていう使い分け方をしようと思い
ニュースティッカーに表示するためのものを
今までのニュースを全部表示するための仕組みを入れようと思い色々調べて
なかなかジャストミートな記事が無かったのquery_postsから調べて作ったコードを紹介します
(記事が無かったというか、固定ページに投稿を一覧表示するトピックばかり検索に出てきて見つからなかった)
記事の一覧のを呼び出す機能はあるのですが、HTMLが最初から付いてたりと使いにくいところが多かったので
柔軟なquery_postsを使った表示方法です
query_postsで固定ページをpost記事のように扱い一覧を作る
さっそくコードを見てもらったほうが、分かるかもしれませんのでまずコード
<dl class="n-archive"> <?php query_posts( array('post_type' => 'page','order'=>'DESC','orderby'=>'post_date','post__not_in' => array(36,41,52) )); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <dt><?php the_time('Y-m-d'); ?></dt> <dd><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><dd> <?php endwhile;endif;wp_reset_query();?> </dl>
実はとても簡単な仕組みです、post_typeでpageとしてpostからpageに変えてやります
これで対象が固定ページに切り替わります
array(‘post_type’ => ‘page’,’order’=>’DESC’,’orderby’=>’post_date’,’post__not_in’ => array(36,41,52) )
あとは、フィリたリングしたいものを引数で追加していきます使えるものの詳細はこちら WIKI
上のコードでは表示順列を投稿日順にしています、また載せたくないページはpost__not_inで除外しています
あとはループ内で通常のpostと同じ扱いでHTMLタグと組み合わせます
上の例では投稿日時を取得して表示、固定記事のタイトルとリンクを挿入したものになります
あとはCSSで装飾してやれば色々な見せ方が出来ます
COMMENT