Я создаю два различных объекта WP_Query, один для каждого из двух различных типов сообщения, которые я использую. В создании моего вывода я хотел бы циклично выполниться через один из объектов, и в то же время цикл через другой объект также, таким образом, я могу произвести части их вместе. Вот пример того, что я хотел бы выполнить:
$rotator_args = array(
'post_type' => 'rotator',
);
$rotator = new WP_Query($rotator_args);
$numrotators = $rotator->post_count;
$testimonial_args = array(
'post_type' => 'testimonial',
'posts_per_page' => $numrotators,
);
$testimonial = new WP_Query($testimonial_args);
while ( $rotator->have_posts() ) :
$rotator->the_post(); //setup the rotator posts
$testimonial->the_post(); //this breaks things, understandably
$rotator_image = get_the_post_thumbnail($rotator->ID, 'large');
$testimonial_image = get_the_post_thumbnail($testimonial->ID, 'large');
$return .= '<div>' . $rotator_image . '</div>';
$return .= '<div>' . $testimonial_image . '</div>';
endwhile;
return $return;
Однако это не работает. Вынимание $testimonial->the_post();
(и связанное $testimonial
связанный код), чинит вещи.
Пройдите каждый цикл, храня объект сообщения в массиве. Затем в конце комбинируют их. (Это полностью не тестируется),
Я не уверен, что можно объединить эти два цикла вместе, так как нет ничего для разделения их от точки зрения данных. Вы пытаетесь добавить данные из свидетельства во вращающее устройство, когда это идет?
Править: Счет осуществляет рефакторинг, намного лучше, чем мое Редактирование клейкой ленты: Кроме того, мое редактирование будет придерживаться того же свидетельства, которое не было даже желаемым результатом. Снова: см., что счет осуществляет рефакторинг
Затруднения, которые Вы испытываете, с $post. Каждый раз Вы запускаете the_post (), $post имеет применимые данные. Я предложил бы что-то как следующее:
global $post;
$rotator_args = array(
'post_type' => 'rotator',
);
$rotator = new WP_Query($rotator_args);
$numrotators = $rotator->post_count;
$testimonial_args = array(
'post_type' => 'testimonial',
'posts_per_page' => $numrotators,
);
$testimonial = new WP_Query($testimonial_args);
if( $testimonial->have_posts() )
{
$testimonial->the_post();
$my_testimonial = $post;
}
while ( $rotator->have_posts() ) :
$rotator->the_post(); //setup the rotator posts
$rotator_image = get_the_post_thumbnail($rotator->ID, 'large');
$testimonial_image = get_the_post_thumbnail($my_testimonial->ID, 'large');
$return .= '<div>' . $rotator_image . '</div>';
$return .= '<div>' . $testimonial_image . '</div>';
endwhile;
return $return;
Есть ли некоторая часть данных, которые подключают $rotator к $testimonial? Если не затем я не вижу то, что точка является …, у Вас просто есть два разрозненных цикла.
get_the_content()
? – Travis Northcutt 07.02.2012, 23:54print_r( $rotator_items[0] );
для наблюдения всех данных, Вы имеете. Например, для довольного использование$rotator_items[0]->post_content
– Bill Erickson 08.02.2012, 00:24