前回に引き続き、WordPressのショートコード作成。
今回は新着記事を表示するショートコード。
■サンプルコード
function.php
add_shortcode('sidebar-newarrival', 'sidebarNewArrival');
function sidebarNewArrival() {
$out = "<div class=\"sidebar\">\n";
$out .= "<dl id=\"\">\n";
$newslist = get_posts( array(
'posts_per_page' => 5 //取得記事件数
));
$out .= "<dl id=\"\">\n";
global $post;
foreach ($newslist as $post) {
setup_postdata($post);
$cat = get_the_category();
$catid = $cat[0]->cat_ID;
$catname = $cat[0]->cat_name;
$date = date('Y年m月d日', strtotime($post->post_date));
$out .= "<dt class=\"\">";
$out .= "<a href=\"" .get_permalink() ."\">" .the_title("","",false) ."</a> <span>" .$catname ."</span>";
$out .= "</dt>";
$out .= "<dd>" .the_date("Y年m月d日","","",false) ."</dd>\n";
}
$out .= "</dl>\n";
$out .= "</div>\n";
return $out;
}
■ハマった点
タイトルや投稿日の取得用テンプレートタグですが、
引数を指定しないと変数に格納できずそのままページ出力されます。
訳が分からず他のメソッドを使わないといけないのなとか思ったりしてかなりハマりました。
wordpressのドキュメントはちゃんと読まないといけませんね・・
これ
テンプレートタグ/the title - WordPress Codex 日本語版
テンプレートタグ/the date - WordPress Codex 日本語版