Вывод конкретных записей post_type в цикле с учетом custom_fields?

Доброго дня. Есть вывод записей простым циклом. Сейчас это условный вывод последних записей конкретного типа. Требуется вывести 3 записи, которые админ сам укажет в кастомных полях.

<section class="random__section">
  <h4 style="width: 100%">Похожие проекты:</h4>
<?php $args = array( 'post_type' => 'projects', 'posts_per_page' => 3); $loop = new WP_Query($args); ?>
			
<?php while ($loop->have_posts()) : $loop->the_post(); ?>
  <a class="col-md-6 col-sm-12 col-lg-3" href="<?php the_permalink(); ?>">
    <div>
      <img src="<?php the_field('background'); ?>" alt="">
      <span class="block__project_title"><?php the_title(); ?></span>
    </div>
  </a>
<?php endwhile; ?>
</section>


5ee111fb98b66521525982.png

Для вывода записей есть свой custom_fields (через именуемый плагин). Стоит задача выводить в данном цикле конкретные записи, id или url которых можно добавить в админке в условные поля. То есть в записи, в админ панели, для конкретного поста будут 3 поля, вводим 3 id и эти 3 записи отображаются по шаблону в условном разделе, нужно, чтобы для постов цеплялись их изображения и тайтлы, соответственно.

Буду рад помощи, спасибо!
  • Вопрос задан
  • 345 просмотров
Решения вопроса 2
Kozack
@Kozack Куратор тега WordPress
Thinking about a11y
Ну, добавляйте нужные вам ИД в параметры запроса, в чем проблема собственно?
https://wp-kama.ru/function/wp_query#postpages
Ответ написан
@zordq Автор вопроса
Чтобы получить конкретные посты - делаем кастомные поля для id. Далее вводим id из urla и через get_field выводим их в нашем цикле, я использовал массив с данными и его вывод.

Главное, что нужно использовать get_field, если будете использовать the_field - это вернет вам строку, а не массив.

<?php
  $loop = new WP_Query([
  'post_type' => 'blogs',
  'post__in'  => [ get_field('id'), get_field('id_2'), get_field('id_3')]
  ]); ?>
  
  <?php while ($loop->have_posts()) : $loop->the_post(); ?>
    <div class="block__project blogs col-md-3 col-sm-12" style="width: 100%; height: 300px !important; padding: 0; position: relative; margin-bottom: 15px;">
      <span class="block__project_title blogs" style="position: absolute; top: 10px; bottom: auto; left: 10px; max-width: 480px;">
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
      </span>
      
      <div class="blogs__template" style="height: 100%; position: relative; text-align: right;">
        <div class="" style="z-index: 2; height: 100%; width: 100%; position: absolute; background: linear-gradient(90deg, rgba(218,223,225,1) 45%, rgba(255,255,255,0) 99%);"> </div>
        <div class="ellipsis" style="position: absolute; z-index: 3; top: auto; bottom: 50px; left: 20px; max-width: 500px; max-height: 140px; overflow: hidden; text-overflow: ellipsis;"><?php the_field('post_text'); ?></div>
        <img src="<?php the_field('post_avatar'); ?>" alt="" style="height: 100%;">
      </div>
      
    </a>
    <!-- <div class="blogs__text" style="position: absolute; left: 10px; bottom: 10px; color: #000; padding: 5px; background-color: #fff; display: flex; justify-content: center; align-items: center;">
    <?php the_field('post_text'); ?>
  </div> -->
</div>
<?php endwhile; ?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы