WordPressのショートコードで記事内に最新記事を表示する方法

Wordpress

WordPressのショートコードを使って記事の最新記事リストを表示する方法を見つけたのでメモ。

一般的な企業系ホームページをWordPressを使って作る際、記事更新情報をリスト表示したい事が多いと思います。

でもWordPressの記事入力エリアにはPHPは使えません。(PHPを使えるようにするプラグインを入れる手もありますが、個人的に使いたくない)

ショートコードを使う事で、余計なプラグインを入れることもなく実現が可能です。

確認環境

  • WordPress3.1.4

ショートコード用プラグラムを記述

functions.phpに以下の記述をします。

“`//指定記事数の記事リストを表示(Homeで使用)
function getCatItems($atts, $content = null) {
extract(shortcode_atts(array(
"num" => ‘5’
), $atts));
global $post;
$oldpost = $post;
$myposts = get_posts(‘numberposts=’.$num.’&order=DESC&orderby=post_date’);
$retHtml='<dl>’;
foreach($myposts as $post) :
setup_postdata($post);
$retHtml.='<dt>’.get_post_time(‘Y/m/d’).'</dt>’;
$retHtml.='<dd><a href="’.get_permalink().’">’.the_title("","",false).'</a></dd>’;
endforeach;
$retHtml.='</dl>’;
$post = $oldpost;
return $retHtml;
}
add_shortcode("recent", "getCatItems");“`

ショートコードを記事内に記述

表示したい箇所に以下のようなショートコードを記述します。下記の記述例では、新着10件を表示するという意味になります。

“`[recent num="10"]“`

結果html

以下のようなhtmlが吐き出されます。CSSは各自当ててください。

“`<dl>
<dt>2011/12/15</dt>
<dd><a href="http://localhost/archives/8">テスト投稿</a></dd>
<dt>2011/12/14</dt>
<dd><a href="http://localhost/archives/1">Hello world!</a></dd>
<!– 以下10件表示が続く。記述省略。 –>
</dl>“`

参考リンク

タイトルとURLをコピーしました