トップページ「更新情報」の表示内容修正 #2 | WordPress


更新情報(投稿、カスタム投稿)の表示内容修正 #2

前回の投稿では、WordPressの投稿トップページの「更新情報」の表示内容を修正したことをお知らせしました。具体的には、”投稿ページ”、”カスタム投稿ページ”の記事のタイトル、投稿日の右横に、投稿から一定期間の新着投稿に”新着!!”or”New!!”と表示させ、かつ、その右側に記事の”投稿カテゴリー”を追加表示した、ということでした。

その第二弾として、更新情報の表示内容を増やしました。画像のように、「検査・測定の話」の中で表示させていた記事を分けて、下段の「お知らせ・Webサイト更新」と「測定器紹介(動画 etc)」に表示するようにしました。
そのために、子テーマの functions.php のコードを下記のように変更しました。

/* 投稿リストの表示用ショートコード生成 */

function display_postlist() {
  $posts_postlist = get_posts( array(
    'post_status' => 'publish',
    'category'    => '2,8,19', //カテゴリID(全カテなら不要)
    'posts_per_page' => 5 //件数
  ) );

/* 投稿リストの表示用ショートコード生成 */

function display_postlist($atts) {
  global $post;
  extract(shortcode_atts(array(
	'cat' => '', // デフォルトカテゴリー''(全部)
	'post_num' => 5 // デフォルト表示件数 = 5
	), $atts));

  $cat = rtrim($cat, ","); //文字末の”,”を削除(あれば)

  $posts_postlist = get_posts( array(
    'post_status' => 'publish',
    'category'    => $cat, //カテゴリID(2:Trivia、8:お知らせ、19:Webサイト関連、60:Video、全部なら指定せず)
    'posts_per_page' => $post_num //件数
  ) );

コードの修正内容としては、ショートコード(下記)で指定する際に、カテゴリーIDと表示件数の2つのパラメーターを引数(cat、post_num)として渡すようにしたことです。そのために、冒頭の部分(extract文)で引数で指定されなかった場合のデフォルトの値を設定してやり、そのあと、その引数を条件に”get_posts()”で投稿記事内容を引っ張ってきています。”$cat = rtrim($cat, “,”);”の文は、もし引数が ’cat=”8,19,”’ と指定された場合の念の為の処理ですのでなくても構いません。

[display_postlist cat="8,19" post_num="5"]

上のコードは、画像の左下の「お知らせ・Webサイト更新」用のショートコードです。この例では、カテゴリーIDは8と19、表示件数5件を指定しています。