群馬県高崎市在住「みんなのIT」管理者の加藤(@namibuta)です。
今回もWordPressのテクニックをご紹介します。
ビジネスサイトを構築すると、投稿に新着投稿の一覧を表示したいことがあります。
その時に使えるテクニックです。
PHPを直接実行出来ないか?
PHPを実行出来るWordPressプラグインもあります。
それを使うともう少し簡単にできるのですが、私は使用しません。
なぜかというと投稿に直接PHPコードを書く方法はセキュリティ的に問題があるからです。
また、トップページやサイドバーなどについてはテーマのphpコードを修正してコードを埋め込む方法があります。
ショートコード機能を使用する
WordPressでは使用しているテーマの「function.php」に関数を追加することで、
HTMLと同レベルで使用できる「ショートコード」という機能を使うことができます。
今回はこの「ショートコード」機能を使って一覧を表示します。
サンプルではTABLE形式で「掲載日」(幅20%)、「タイトル」(幅80%)を表示します。
タイトルは各記事にリンクするようにします。
上から記事の新しい順に表示します。
※HTMLは使うサイトに合わせてカスタマイズして下さい。
/*——————————————-*/
/* New Post Display
/*——————————————-*/
function getCatItems($atts, $content = null) {
extract(shortcode_atts(array(
“num” => ’10’,
“cat” => ”
), $atts));
global $post;
$oldpost = $post;
$myposts = get_posts(‘numberposts=’.$num.’&order=DESC&orderby=post_date&category=’.$cat);
$retHtml='<table><th width=”20%”>掲載日</th><th width=”80%”>タイトル</th>’;
foreach($myposts as $post) :
setup_postdata($post);
$date = date(“Y年m月d日”,strtotime($post->post_date));
$retHtml.='<tr><td width=”20%”>’.$date.'</td><td width=”80%”><a href=”‘.get_permalink().'”>’.the_title(“”,””,false).'</a></td></tr>’;endforeach;
$retHtml.='</table>’;
$post = $oldpost;
return $retHtml;
}
add_shortcode(‘newlist’, ‘getCatItems’);
投稿記事にHTMLモードで下記の様に書けば、一覧が表示されます。
[newlist num=”表示したい行数” cat=”表示したいカテゴリーID”]
デフォルトだとカテゴリに関係なく10記事を表示します。
デフォルトで良ければ[newlist]と記述するだけでOKです。
「インターネットの賢い利用法」。個別セミナー・相談会を随時開催しています。
あなたの会社のデータ活用を経験豊富なデータベースコンサルタントがアドバイス。
パソコン・スマホの操作方法からシステム構築・運用まで、お問い合わせ・ご相談はこちらからお気軽に!→お問い合わせ