Поддержка Проблемы и решения Как не выводить записи на странице подкатегорий?

  • Всем привет.

    Нужна ваша помощь.
    Есть вывод категорий и подкатегорий с записями (произвольные записи).

    <?php get_header(); ?>
    
    <div class="content">
        <div class="container">
                <?php $arg_cat = array(
              'child_of'                 => '',
              'parent'                   => '',
              'orderby'                  => 'name',
              'order'                    => 'ASC',
              'hide_empty'               => 0,
              'hierarchical'             => 1,
              'exclude'                  => '',
              'include'                  => '',
              'number'                   => 0,
              'parent' => get_queried_object_id(),
              'taxonomy'                 => 'category-products',
              'pad_counts'               => false
          );
          $categories = get_terms( $arg_cat );
          ?>
          <?php if($categories) { ?>
          <h1 class="title"><?php single_term_title(); ?></h1>
          <div class="categories" >
          <?php foreach( $categories as $cat ){ ?>
            <div id="post-<?php the_ID(); ?>" class="category__block category-block">
              <div class="category-block__image">
                <?php
                              $image_id = get_term_meta( $cat->term_id, '_thumbnail_id', 1 );
                              $image_url = wp_get_attachment_image_url( $image_id, 'full' );
                              echo '<img src="'. $image_url .'" alt="" />';
                        ?>
                      </div>
              <div class="category-block__title"><? echo  $cat->name ; ?></div>
              <a href="<?php echo get_term_link($cat) ?>" class="category-block__link"></a>
            </div>
          <?php } ?>
        </div>
        <?php } ?>
        <?php if ( have_posts() ) { ?>
          <h2 class="title">Товары</h2>
        <?php } ?>
        <div class="products">
          <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
          <div id="post-<?php the_ID(); ?>" class="product__block product-block">
            <div class="product-block__container">
              <div class="product-block__title"><?php the_title(); ?></div>
              <div class="product-block__image">
                <?php the_post_thumbnail() ?>
              </div>
              <div class="product-block__info">
                <div class="product-block__text">
                  <div class="product-block__desc">Грузоподъемность (т):</div>
                  <div class="product-block__value"><?php the_field('product_carrying') ?></div>
                </div>
                <div class="product-block__text">
                  <div class="product-block__desc">Модель двигателя:</div>
                  <div class="product-block__value"><?php the_field('product_model') ?></div>
                </div>
                <div class="product-block__text">
                  <div class="product-block__desc">Мощность двигателя (л.с.):</div>
                  <div class="product-block__value"><?php the_field('product_power') ?></div>
                </div>
                <div class="product-block__text">
                  <div class="product-block__desc">Трансмиссия:</div>
                  <div class="product-block__value"><?php the_field('product_transmission') ?></div>
                </div>
                <div class="product-block__text">
                  <div class="product-block__desc">Высота подъема:</div>
                  <div class="product-block__value"><?php the_field('product_lifting') ?></div>
                </div>
              </div>
            </div>
            <div class="product-block__links">
              <a href="#" class="product-block__button product-block__button--br">Брошюра</a>
              <a href="#" class="product-block__button product-block__button--buy">Покупка</a>
            </div>
          </div>
          <?php endwhile; ?>
        </div>
        </div>
    </div>
    <?php get_footer(); ?>

    Сейчас на странице категорий выводятся все записи ее подкатегорий. Как можно сделать, чтобы записи выводились только на странице подкатегорий, подподкатегорий и т.д?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Юрий

    (@yube)

    Как можно сделать, чтобы записи выводились только на странице подкатегорий, подподкатегорий и т.д?

    Если я правильно понял вопрос

    function no_children( $query ) {
        if ( ! is_admin() && $query->is_main_query() && $query->is_category() )
            $query->set( 'category__in', array( get_queried_object_id() ) );
    }
    add_action( 'pre_get_posts', 'no_children' );
    

    Всё равно выводятся товары, код, который скинул выше в файле taxonomy-category-products.php
    Вставил ваш код в functions.php — всё равно выводятся товары на странице категории.

Просмотр 2 ответов — с 1 по 2 (всего 2)