@sergo573

Почему не работает post__in в query_posts?

Здравствуйте. Имеется кастомный вывод записи... в нем выводятся 10 записей на странице, используя "offset", сначала 1 запись, потом 4, потом еще 4, и затем 1 (такой вывод нужен для дизайна, и он отлично работает). Задача сделать настраиваемые первые 5 записей, id первых 5 записей вписываются в админке на странице options (плагин ACF Fields), написал код:
<?php
$first_five = array( get_field('first_five', 'option') ); //id первых 5 записей в виде 1,2,3,4,5
?>
<!-- Выводим первую запись -->
<div>
<?php if ( have_posts() ) : query_posts(array('posts_per_page' => 1, 'cat' => $current_cat_id, 'offset' => 0, 'post__in' => $first_five ));
while (have_posts()) : the_post(); ?>
<h3><?php the_title(); ?></h3>
<?php endwhile; endif; wp_reset_query(); ?>
</div>
<!-- Выводим записи от 2 до 5 -->
<div>
<?php if ( have_posts() ) : query_posts(array('posts_per_page' => 4, 'cat' => $current_cat_id, 'offset' => 1, 'post__in' => $first_five )); 
while (have_posts()) : the_post(); ?>
<h3><?php the_title(); ?></h3>
<?php endwhile;  endif; wp_reset_query(); ?>
</div>

Не пойму в чем проблема, первая запись выводится отлично, а вот от 2 до 5 не выводятся, причем если в query_posts в выводе записей от 2 до 5, вместо $first_five прописать array( 1,2,3,4,5), то всё работает отлично...
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
irtek
@irtek
Wordpress-addicted
Строка с запятыми это не массив, поэтому у вас она приводится только к первому значению. Чтобы эту строку превратить в массив замените первую строку на

$first_five = explode( ',', get_field( 'first_five',  'option' ) );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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