トップページで投稿記事のほかに新着記事でタイトルだけ最新の5件だけ、情報を取り出したい!ということがあると思うので今更ながらメモ。
何がしたいのか
wordpressにはメインループと呼ばれるループのほかにメインループには影響がなく情報を取り出したい時に使用するサブループ、またはカスタムループとよばれるものがあります。
それが「get_posts」というテンプレートタグでget_postsタグを使った情報の取得して表示する方法をメモしていこうかと思いますが、とりあえず最新の投稿記事のタイトルを表示させたいと思います。
get_postsの使い方
最新記事の5件のタイトルを取り出したいので、get_postsに引数を指定しなきゃいけません。
そのための使い方として下記に引数の一覧と使い方を記載します。
$args = array(
//取得する投稿の数
'numberposts' => 5,
//先頭から何件の投稿を除外するか
'offset' => 0,
//指定したカテゴリID の投稿のみを返す。除外したい時は-を付ける
'category' => ,
//様々な値で並べ替える
'orderby' => 'post_date',
//$orderby でのソート方式。'ASC' - 昇順(低から高)。'DESC' - 降順(高から低)。
'order' => 'DESC',
//表示したい投稿のID
'include' => ,
//表示したくない投稿のID
'exclude' => ,
//カスタムフィールドのキーと値を持つ投稿のみ表示。両方のパラメータ指定が必要
'meta_key' => ,
'meta_value' => ,
//表示する投稿のタイプ。post、page、any(全て)等
'post_type' => 'post',
//このIDの投稿の子のみを表示
'post_parent' => ,
//指定したステータスの投稿を表示
'post_status' => 'publish'
);
$newposts=get_posts($args);
たくさんあるので下記のサイトを参考にしてください。
最新の記事5件の記事タイトルとURLを取得する使用例
下記にサンプルを載せました。引数に「numberposts=5」を引き渡しているので最新の5件の情報をひっぱってこれます。
*’numberposts’ または ‘posts_per_page’ のいずれかが利用できます。
wp_reset_postdataについて
これは、もうセットでつけておけばいいんじゃないでしょうか!$postを上書きした場合はwp_reset_postdata()でループの条件をリセットしておかないといろいろ不具合が出たりします。
下記のサイトに載っています。