【WordPress】get_posts関数を使って記事下に最新記事のリンクを作成する
WordPressの関数であるget_postsに関するメモです。
get_posts関数について
get_posts関数は、指定された条件に合致する記事情報を取得する関数です(配列で取得)。
get_posts(引数);
引数に各種パラメータを指定してあげれば、そのパラメータに合致する投稿情報を取得できます。
サンプル
サンプルとして、カテゴリーIDが「2」と「28」ではない(2と28のカテゴリーに属していない)最新の記事2件の投稿情報を取得してみます。
<?php //最新の記事2つの投稿情報を配列で取得(カテゴリーIDが「2」と「28」の記事は除く) $posts_info = get_posts( 'numberposts=2&category=-2,-28' ); //配列の情報を出力 print_r($posts_info); ?>
これを実行すると、以下の投稿情報を取得できます。
Array
(
[0] => WP_Post Object
(
[ID] => 記事ID
[post_author] => 投稿者ID
[post_date] => 投稿日時
[post_date_gmt] => 投稿日時
[post_content] => 投稿内容
[post_title] => 記事タイトル
[post_excerpt] => 記事の概要(概要を設定していない場合は空)
[post_status] => 投稿状態
[comment_status] => コメントステータス
[ping_status] => ピングステータス
[post_password] => 記事パスワード
[post_name] => 記事の名前(URL形式)
[to_ping] => ?
[pinged] => ?
[post_modified] => 記事の修正日時
[post_modified_gmt] => 記事の修正日時
[post_content_filtered] => ?
[post_parent] => 親記事のID
[guid] => 記事のガイドURL
[menu_order] => ?
[post_type] => 投稿タイプ
[post_mime_type] => ?
[comment_count] => コメントの数
[filter] => ?
)
[1] => WP_Post Object
(
[ID] => 3425
[post_author] => 1
[post_date] => 2013-12-16 09:10:46
[post_date_gmt] => 2013-12-16 00:10:46
[post_content] => これはテストです。
[post_title] => テスト投稿
[post_excerpt] =>
[post_status] => publish
[comment_status] => open
[ping_status] => closed
[post_password] =>
[post_name] => %E3%83%86%E3%82%B9%E3%83%88%E6%8A%95%E7%A8%BF
[to_ping] =>
[pinged] =>
[post_modified] => 2013-12-16 04:16:42
[post_modified_gmt] => 2013-12-15 19:16:42
[post_content_filtered] =>
[post_parent] => 0
[guid] => http://○○○.com/?p=3425
[menu_order] => 0
[post_type] => post
[post_mime_type] =>
[comment_count] => 5
[filter] => raw
)
)
最新の記事5件の記事タイトルとURLを取得してリンクを作る
get_posts関数を使用して、最新記事5件のタイトルとURLを取得して、記事へのリンクを出力するプログラムを掲載します。
<ul> <?php $posts_info_array = get_posts( 'numberposts=5' ); foreach($posts_info_array as $post) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul>
記事下に最新記事のリンクを掲載する方法
上のサンプルプログラムは、確かに最新記事のリンクを作成できますが、WordPressの記事出力内(ループ内)で使用すると干渉され、意図する動きになりません。
こういう場合、以下のようにすればOKです。
<ul> <?php $posts_info_array = get_posts( 'numberposts=5' ); foreach($posts_info_array as $post_info) : ?> <li><a href="<?php echo get_permalink( $post_info->ID ); ?>"><?php echo $post_info->post_title; ?></a></li> <?php endforeach; ?> </ul>
これで記事下に最新記事5件のリンクを作成できます。
あわせて読んでほしい!
コメント
まだコメントはありません。