サポート » 使い方全般 » カスタム投稿で親カテゴリと子カテゴリーを一覧表示したい

  • カスタム投稿(car)の
    アーカイブページにて
    親カテゴリと子カテゴリを以下のように一覧表示させたいです。
    例えば

    <ul id="page-link">
    <li><a href="#親カテゴリのスラッグ">トヨタ</a></li>
    <li><a href="#親カテゴリのスラッグ">ホンダ</a></li>
    </ul>
    
    <section id="親カテゴリのスラッグ取得">
        	<h3>トヨタ</h3>
            <div class="blk">
            	<h4>SUV</h4>
             <ul>
             <li>FJクルーザー</li>
             <li>ランドクルーザー</li>
             </ul>
         </div>
             <div class="blk">
            	<h4>ミニバン</h4>
             <ul>
             <li>アルファード</li>
             <li>エスティマ</li>
             </ul>
         </div>
        </section>
    
    <section id="親カテゴリのスラッグ取得">
        	<h3>ホンダ</h3>
            <div class="blk">
            	<h4>コンパクト</h4>
             <ul>
             <li>フィット</li>
             </ul>
         </div>
             <div class="blk">
            	<h4>セダン</h4>
             <ul>
             <li>アコード</li>
             </ul>
         </div>
        </section>

    ■トヨタ(親)
    ―SUV(子)
     該当記事タイトル1
     該当記事タイトル2
    ―ミニバン(子)
     該当記事タイトル1
     該当記事タイトル2
    ■ホンダ(親)
    ―コンパクト(子)
     該当記事タイトル1
     該当記事タイトル2
    ―セダン(子)
     該当記事タイトル1
     該当記事タイトル2

    このようにしたいです。
    スラッグを取得してページ内リンクできればとおもいます。
    該当カテゴリの記事がなくても、登録したカテゴリは常に表示させておきたいです。
    ご存知方いらっしゃいましたら、ご教授願います。
    よろしくお願い致します

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • ちゃんと動くコードを示せませんが
    過去のトピックを応用するとできそうです。
    https://ja.wordpress.org/support/topic/show_last_updateに代わるタグはありませんか/

    wp_list_categories() を使ってカスタム投稿のカテゴリーの入れ子リストを表示するとき、リストを表示するための Walker クラスをカスタマイズして、各カテゴリーのカスタム投稿へのリンクも表示できるかなと思います。

    • この返信は5年、 11ヶ月前にgblsmが編集しました。
    トピック投稿者 suzuki_macboy

    (@suzuki_macboy)

    gblsm様
    回答ありがとうございます。

    私には難易度が高く、
    この実装方法が難しいのかもしれません。

    • この返信は5年、 11ヶ月前にsuzuki_macboyが編集しました。

    はじめまして。

    簡単にコードを書いてみました。
    親カテゴリ、子カテゴリ、投稿を一気に全部取得しようとするのではなく、
    別々に取得すれば実現できるのかなと思いました。

    <?php
      $parents = get_terms('category', array('parent' => 0, 'hide_empty' => false));
      $terms = array();
    ?>
    <?php foreach ($parents as $parent): ?>
    <?php
      $terms[] = array(
        'parent_slug' => $parent->slug,
        'parent_name' => $parent->name,
        'children' => get_terms('category', array('parent' => $parent->term_id, 'hide_empty' => false))
      );
    ?>
    <li><a href="#<?php echo $parent->slug; ?>"><?php echo $parent->name; ?></a></li>
    <?php endforeach; ?>
    <?php foreach ($terms as $term): ?>
    <section id="<?php echo $term['parent_slug']; ?>">
      <h3><?php echo $term['parent_name']; ?></h3>
      <?php foreach ($term['children'] as $child): ?>
      <div class="blk">
        <h4><?php echo $child->name; ?></h4>
        <?php $child_posts = get_posts(array('category' => $child->term_id)); ?>
        <ul>
          <?php foreach ($child_posts as $child_post): ?>
          <li><?php echo $child_post->post_title; ?></li>
          <?php endforeach; ?>
        </ul>
      </div>
      <?php endforeach; ?>
    </section>
    <?php endforeach; ?>
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタム投稿で親カテゴリと子カテゴリーを一覧表示したい」には新たに返信することはできません。