У мене є запит на користувацький тип публікації:
<?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
Так виглядає, що змінна $ книги не доступна у функції get_template_part. Як я можу вирішити цю проблему? Якщо я поміщаю запит на $ книги всередині loop-books.php, він працює добре, але я хочу їх розділити.
<?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 & Сподіваюся, це спрацює.