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

Суть задачи — вывести на странице все кастомные категории и кастомные записи из каждой категории.
В моем примере выводятся кастомные таксономии 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="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

        <?php
      }

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

    wp_reset_postdata();

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

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

<?php } ?>

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

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

Суть задачи — внизу после основного контента кастомного поста нужно вывести 3 записи, рекомендуемые к…

Добавляем в исходный код время изменения файлов css и js для сайтов на CMS WordPress

Краткое вступление. Есть сайт на WordPress, сайт живой, посещаемый и вполне рабочий. Нужно внести какие-то…

Выводим колонку «Размер» для библиотеки медифайлов в админке CMS WordPress

Задача такая: просмотреть несколько сайтов и найти изображения, которые не оптимизированны для web’а, так как…

Как вставить в пост шорткод для вызова виджета

Задача такая — разместить в поcты на WordPress рекламные баннеры. Есть несколько вариантов: Вариант 1…

6 комментариев

Сергей

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

К сожалению, не подскажу.

Ирина

Добрый день. А как вывести записи с текущей меткой?

В таком же формате – все таксономии и все записи, но относящиеся к определенной метке? Или просто вывести кастомные записи определенной метки?

Андрей

Добрый вечер.
А как вывести только 1 подкатегорию в которой присутствует запись
из вашего примера он их дублирует

Ответить