Выводим список кастомных таксономий и кастомных записей из каждой таксономии

30.10.2019

Суть задачи – вывести на странице все кастомные категории и кастомные записи из каждой категории.
В моем примере выводятся кастомные таксономии partner_cat и кастомные записи partner.
Я вывожу из каждой таксономии по 5 записей и ниже есть ссылка на таксономию со всеми записями. Чтобы выводить сразу все записи из всех таксономий, нужно изменить параметр 'posts_per_page' на -1.
Как создавать кастомные таксоноии и записи подробнее в этой статье Создаем кастомный тип записи (Custom Post Type) с кастомными категориями (Custom Taxonomy)

<?php  
$terms = get_terms(
  array(
    'taxonomy'   => 'partner_cat',
    'hide_empty' => true,
    'hierarchical' => false,
    'orderby' => 'name',
    'order' => 'ASC',
  )
);

foreach ( $terms as $term ) { ?>
  <h2><?php echo $term->name; ?></h2>

  <div class='partners-list'>
    <?php

    $args = array(
      'post_type' => 'partner',
      'post_status' => 'publish',
      'posts_per_page' => 5,
      'orderby' => 'date',
      'order' => 'DESC',
      'tax_query' => array(
        array(
          'taxonomy' => 'partner_cat',
          'field' => 'name',
          'terms' => $term->name
        )
      )
    );

    //the query
    $partnersList = new WP_Query( $args );

    //loop through query
    if($partnersList->have_posts()) {
      echo '<ul>';

      while($partnersList->have_posts()) { 
        $partnersList->the_post();
        ?>

        <li><a href=&quot;<?php the_permalink(); ?>&quot;><?php the_title(); ?></a></li>

        <?php
      }

      echo '</ul>';
    } else {
      //no posts found
    }

    wp_reset_postdata();

    ?>
  </div><!-- /partners-list -->

  <p><a href=&quot;<?php echo esc_url( get_term_link( $term ) ) ?>&quot;>Все записи из таксономии &quot;<?php echo $term->name; ?>&quot;</a></p>

<?php } ?>

На выходе получаем такой вид:

Полезная инфа:

Комментарии (2) к “Выводим список кастомных таксономий и кастомных записей из каждой таксономии”

  • Сергей

    Добрый день. Спасибо за ваш код, получилось оформить страницу как хотелось. Может подскажете как организовать для этой страницы пангинацию постраничную если категорий много, что бы от определённого числа переносились на следующую страницу?

    Ответить

Оставить комментарий