f is(エフイズ)|サトウユウキ(aka.キビ)f is(エフイズ)オフィシャルサイト

特定カテゴリーの記事一覧を呼び出す便利なphpを作ってみた

新着記事一覧は以前の記事でphpを作成しましたが、今回はまた別の記事一覧の取得方法です。
前回のものとの一番の違いは、ショートコードで呼び出し内容をある程度制御できる点です。
作成した例は下記になります。
今回はショートコードで管理を出来るようにするために、functions.phpへの記載となりますので、バックアップをしてから行うようにしましょう!

//最新記事の表示ショートコード
function getNewItems($atts) {
extract(shortcode_atts(array(
"num" => '',//最新記事リストの取得数
"cat" => ''//表示する記事のカテゴリー指定
), $atts));
global $post;
$oldpost = $post;
$myposts = get_posts('numberposts='.$num.'&order=DESC&orderby=post_date&category='.$cat);//指定した記事数・記事カテゴリーを読み込み
$retHtml='<ul>';
foreach($myposts as $post) :
$cat = get_the_category();
$catname = $cat[0]->cat_name;
$catslug = $cat[0]->slug;
setup_postdata($post);
$retHtml.='<li>';
$retHtml.='<span class="date">'.get_post_time( get_option( 'date_format' )).'</span>';//記事投稿日ココに挿入
$retHtml.='<span class="author_'.get_the_author_meta('ID').'">'.get_the_author().'</span>';//記事投稿者ココに挿入
$retHtml.='<span class="cat '.$catslug.'">'.$catname.'</span>';//記事カテゴリーココに挿入・カテゴリーのスラッグ名をspanのclassに追加
$retHtml.='<span class="title"><a href="'.get_permalink().'">'.the_title("","",false).'</a></span>';//記事タイトルココに挿入
$retHtml.='</li>';
endforeach;
$retHtml.='</ul>';
$post = $oldpost;
wp_reset_postdata();
return $retHtml;
}

add_shortcode("kiji_list", "getNewItems");//ショートコードの設定
//最新記事の表示ショートコード

こちらを、functions.phpに記載した後は、各記事投稿や固定ページの投稿などで

[kiji_list cat="" num="10"]

このショートコードを記載してください。
catの部分に何も書かなければ全記事から。
特定のカテゴリーにしたい場合は、カテゴリIDを入れてください。
numの部分は読み込む記事数になります。
※[が全角の[になっているのでコピペ注意です!

そうすると、下記のような感じで内容が羅列されますよ~。

この読み込みショートコードの優れた点は、カテゴリーのスラッグ名と、投稿ユーザーのユーザーIDをspanのclass名に反映されるようにしてあります。
なので、カテゴリーごとに、投稿者ごとに文字の色を変えるなどの装飾が出来る点が、意外と役に立ちますのでご活用ください。
私もつい最近、この色分けが必須で活用しました!

Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedInPin on Pinterest