VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

ショートコードを使って関連記事のリンクを自動で挿入

投稿内に関連記事のリンクを自動で挿入するショートコードを作ってみました。下記サイトを参考にしました。
http://wp.smashingmagazine.com/2009/02/02/mastering-wordpress-shortcodes/

1)ショートコードを作成


 
指定したカテゴリーの最新x記事のリンクを投稿内に挿入するショートコードを作成してみました。
 
functions.phpに下記コードを追加します。
function sc_ref_list($atts, $content = null) {
  extract(shortcode_atts(array(
          "num" => '3',
          "cat" => ''
  ), $atts));
  global $post;
  $myposts = get_posts('numberposts='.$num.'&order=DESC&orderby=post_date&category_name='.$cat);
  $sc_ret='<div class="panel panel-default">';
  $sc_ret.='<div class="panel-heading">関連記事のリンク</div>';
  $sc_ret.='<ul class="list-group">';
  foreach($myposts as $post) :
    setup_postdata($post);
    $sc_ret.='<li class="list-group-item"><a href="'.get_permalink().'">'.the_title("","",false).'</a></li>';
  endforeach;
  $sc_ret.='</ul>';
  $sc_ret.='</div>';
  return $sc_ret;
}
add_shortcode("ref_list", "sc_ref_list");

 

2)ショートコードの内容の説明


 
①extract(shortcode_atts(array(“num” => ‘3’,”cat” => ”), $atts));
 
こちらの記事参照。
 
②get_posts
 
・category_nameパラメータは、カテゴリーのスラグを指定します。
・投稿日の降順で、指定した数の投稿を取得します。
 
③スタイル設定
 
ブートストラップ3のパネルを使ってスタイリングしてみました。
 

3)動作確認


 
投稿内で下記のように入力すると、カテゴリーのスラグがnewsの最新記事4つのリストが表示されます。
 
[ref_list num=”4″ cat=”news”]
モバイルバージョンを終了