@ivanxxmakarov

Не могу вывести посты ко таханомии в Wordpress, кто поможет?

Доброго времени специалисты по wordpress
Столкнулся с проблемой и никак не могу ее решить.

У меня стоит задача вывести на странице посты отфильтрованные через кастомную таксономию.
Предыстория
1. создал через functions дополнительный раздел Портфолио
2. этом разделе создал рубрики через которые и хочу отсортировать посты.
5c8a3ab011ea8570283649.png

В результате
На странице я получил 10 рандомных постов, из разных рубрик.
Но как только я пытаюсь их отсортировать, все посты пропадают.
Сортирую через
'tag' => 214,
'category' => 269,273,
'category_name' => 'logo_design',
'terms' => 'logo_design',

Помогите разобраться где ошибка ?
Возможно ошибка вовсе не в этой части кода а дальше по коду странице и возможно есть конфликт, ноу меня не так много практики чтобы это проверить.

Код вывода постов который я использую находиться ниже.
<!-- Наши работы -->
     <div class="container-fluid space-2 px-sm-5">
       <div class="u-cubeportfolio">

         <!-- Content -->
         <div class="cbp"
              data-layout="grid"
              data-controls="#filterControls"
              data-animation="quicksand"
              data-x-gap="32"
              data-y-gap="32"
              data-media-queries='[
               {"width": 1500, "cols": 6},
               {"width": 1100, "cols": 6},
               {"width": 800, "cols": 5},
               {"width": 480, "cols": 2},
               {"width": 300, "cols": 1}
             ]'>


           <!-- тестовый блок на вывод поста в виде портфолио -->

           <?php // парметры по умолчанию
           $args = array(
              'numberposts'       => 10,
              'post_type'         => 'portfolio',
              //'tag'               => 214,
              //'category'          => 269,273,
              //'category_name'    => 'logo_design',
              //'terms'             => 'logo_design',
              //'include_children'  => false,
              'orderby'           => 'rand',
              'suppress_filters'  => true,
           );
           $posts = get_posts($args);
           foreach ($posts as $post) { setup_postdata($post);
            ;?>
             <!-- работа портфолио -->
               <!-- Item -->
                 <div class="cbp-item rounded
                          <?php $cur_terms = get_the_terms( $post->ID, 'rubric' );
                            foreach($cur_terms as $cur_term){
                              echo ''. $cur_term->slug .' ';

                            };
                     
                          ?>
                          ">
                   <a class="cbp-caption" href="<?php the_permalink(); ?>">
                     <div class="cbp-caption-defaultWrap">

                       <?php $photo_privu_static_380x360 = get_field( "photo_privu_static_380x360" ); ?>
                        <img src="<?php the_field('photo_privu_static_380x360'); ?>" alt="Image Description">

                     </div>
                     <div class="cbp-caption-activeWrap bg-primary">
                       <div class="cbp-l-caption-alignCenter">
                         <div class="cbp-l-caption-body">
                           <h4 class="h6 text-white mb-0"><?php the_field('title_privu'); ?></h4>
                           <p class="small text-white-70 mb-0"><?php the_field('descriotion_privu'); ?></p>
                         </div>
                       </div>
                     </div>
                   </a>
                 </div>
               <!-- End Item -->
             <!-- END работа портфолио -->
             <?php } wp_reset_postdata(); ?>
           <!-- End тестовый блок на вывод поста в виде портфолио -->



         </div>
         <!-- End Content -->
       </div>

     </div>
     <!-- End Наши работы -->
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 2
azerphoenix
@azerphoenix
Java Software Engineer
Не помешало бы почитать документацию и изучить иерархию шаблонов конечно же.
А если вкратце, то:
у вас есть post_type - portfolio и taxonomy - rubric
Шаблон для вывода архива записей типа portfolio

archive-portfolio.php
минимальный код:
<?php if (have_posts()) :  while (have_posts()) : the_post(); ?>
           <?php the_title (); ?>
	   <?php the_content (); ?>
<?php endwhile; ?>
<?php endif; ?>


Шаблон для вывода записей по терминам таксономии
taxonomy-rubric.php
минимальный код:
<?php if (have_posts()) :  while (have_posts()) : the_post(); ?>
           <?php the_title (); ?>
	   <?php the_content (); ?>
<?php endwhile; ?>
<?php endif; ?>


И тогда при переходе по ссылке термина таксономии вы увидите записи текущего термина.
N.B! Важно! Обратить внимание на название шаблонов. Корректно названный шаблон уже решение.
Ответ написан
Комментировать
@ivanxxmakarov Автор вопроса
Спасибо за ответ, но у меня проблема совсем в другом.
Документацию и структуру шаблонов знаю тоже хорошо.

Я выше писал что с выводом потов нет проблем, тем более с шаблоном.
Проблема с выводом записей по конкретной рубрики, а если конкретней но не срабатывает свойства функции get_posts для фильтрации постов.

<?php // парметры по умолчанию
           $args = array(
              'numberposts'       => 10,
              'post_type'         => 'portfolio',
              //'tag'               => 214,
              //'category'          => 269,273,
              //'category_name'    => 'logo_design',
              'terms'             => 'logo_design',
              //'include_children'  => false,
              'orderby'           => 'rand',
              'suppress_filters'  => true,
           );
           $posts = get_posts($args);
           foreach ($posts as $post) { setup_postdata($post) } wp_reset_postdata(); ?>


Выводятся все посты а должны выводиться только посты которые относятся к таксономии logo_design
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы