Eu tenho uma consulta para um tipo de postagem personalizado:
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$books = new WP_Query(array(
'post_type' => 'wiki',
'posts_per_page' => '50',
'paged' => $paged
));
?>
E eu quero percorrer esses posts usando o loop-books.php:
<?php get_template_part( 'loop', 'books' ); ?>
Dentro do loop-books.php eu os tenho, assim como o loop.php normal, apenas alterei a função have_posts e the_post para trabalhar com a consulta $ books:
<?php if ( $books->have_posts() ) : ?>
<?php while ($books->have_posts()) : $books->the_post(); ?>
<?php the_title(); ?><br/>
<?php endwhile; ?>
<?php endif; ?>
Mas depois disso, recebo um erro php:
Fatal error: Call to a member function have_posts() on a non-object in .../loop-books.php on line 1
Parece que a variável $ books não está disponível dentro da função get_template_part. Como posso resolver esse problema? Se eu colocar a consulta $ books dentro do loop-books.php, está funcionando bem, mas quero separá-las.
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $books = new WP_Query(array( 'post_type' => 'wiki', 'posts_per_page' => '50', 'paged' => $paged )); ?>
e aqui você carrega a get_template_part
consulta. E depois disso, se você reset postdata
, acho que minha solução funcionará corretamente.
$books->
loop-books.php e espero que funcione.