※社内専用

一覧ページに複数のカテゴリの記事を表示させたい【パターン1】

  • HOME
  • EPRESS-BS
  • 一覧ページに複数のカテゴリの記事を表示させたい【パターン1】
この場合工数どのくらいですか?との問い合わせがあって
30分~1時間くらい
と答えたのでとりあえずざっくりマニュアルてきなものを書きたいと思います。

EPRES BSが始まって初期くらいに
以下のサイトがありました。 https://www.maruichi.info/category/itemmenu こちらはカテゴリの親子関係を保ちつつ、作る作業だったので
工数は1時間以上だと思います。
さきほど問い合わせがあった物件がそうでないことを願います…。

本題

ショートコード

ショートコードが使われるようになって、すでにそれをカスタマイズして
使用したことがある方はいるかと思われます。 テーマのデフォルトにある
shortcode-news.php
に以下のような記述があります。
    $paged = get_query_var('paged');
    $args = array(
      'posts_per_page' => $per,
      'paged' => $paged,
      'category_name' => $slug,
      'post_type' => 'post'
    );
    $the_query = new WP_Query( $args );

    if($the_query->have_posts()) {

      $html = '<dl>';
        while ( $the_query->have_posts() ) : $the_query->the_post();
          $html .= '<dt><p>'.get_the_time('Y/m/d').'</p></dt>';
          $html .= '<dd><p><a href="'.get_the_permalink().'">'.get_the_title().'</a></p></dd>';
        endwhile; wp_reset_postdata();
      $html .= '</dl>';

      return $html;
    }
new WP_Query() は表示させたい記事を取得したいときに使うものです。
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query
に詳しく書いています。
こういう風に取得したいな、とかあればこちらを参照してください。

実践

例)/category/listページに
  itemカテゴリ
  blogカテゴリ
  galleryカテゴリを表示させたい。   レイアウトは
  itemカテゴリ
   3記事
  blogカテゴリ
   3記事
  galleryカテゴリ
   3記事
  
  を想定。
・category-list.phpを作り
 中身はとりあえず元々あるcategory.phpの中身をコピペする。
 テーマ配下に置く
 
・shortcode-list.phpを作り
 中身はとりあえず元々あるshortcode-news.phpの中身をコピペする。
 テーマ/functions/custom配下に置く。   ・shortcode-list.phpに
 1つ記事分のレイアウト(html)を組み込む。  ショートコード名を任意のもので作る。
add_shortcode( 'list', function($atts)
”list”としとく。   ・category-list.phpに
[list slug="item" per="3"]
と記述する。
blog galleryも同じように書く。   ・以下の記述を削除
{{epress_pagination()}}
・すべての記事への導線が必要な場合
 / category/スラッグ名
 のリンクも貼る。