我有一个自定义帖子类型的查询:
<?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
));
?>
我想使用loop-books.php遍历这些帖子:
<?php get_template_part( 'loop', 'books' ); ?>
在loop-books.php内部,我有这些内容,就像常规的loop.php一样,我只是更改了have_posts和the_post函数以与$ books查询一起使用:
<?php if ( $books->have_posts() ) : ?>
<?php while ($books->have_posts()) : $books->the_post(); ?>
<?php the_title(); ?><br/>
<?php endwhile; ?>
<?php endif; ?>
但是之后,我得到了一个PHP错误:
Fatal error: Call to a member function have_posts() on a non-object in .../loop-books.php on line 1
因此,看起来$ books变量在get_template_part函数内部不可用。我该如何解决这个问题?如果我将$ books查询放入loop-books.php内,则可以正常工作,但我想将它们分开。
如果我删除$ books->部分,它将使用默认查询,因此对我不利。
—
passatgt 2012年
如果您使用的是类似内容:
—
罗希特·潘德
<?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 )); ?>
并在此处加载get_template_part
查询。在这之后,如果您reset postdata
认为我的解决方案能够正常工作。
$books->
从loop-books.php中删除&我希望它能工作。