Tôi có một truy vấn cho một loại bài tùy chỉnh:
<?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
));
?>
Và tôi muốn lặp qua các bài viết này bằng loop-Books.php:
<?php get_template_part( 'loop', 'books' ); ?>
Bên trong loop-Books.php tôi có những thứ này, giống như loop.php thông thường, tôi chỉ thay đổi hàm have_posts và hàm_post để hoạt động với truy vấn $ book:
<?php if ( $books->have_posts() ) : ?>
<?php while ($books->have_posts()) : $books->the_post(); ?>
<?php the_title(); ?><br/>
<?php endwhile; ?>
<?php endif; ?>
Nhưng sau này, tôi gặp lỗi php:
Fatal error: Call to a member function have_posts() on a non-object in .../loop-books.php on line 1
Vì vậy, có vẻ như biến $ book không có sẵn bên trong hàm get_template_part. Làm thế nào tôi có thể giải quyết vấn đề này? Nếu tôi đặt truy vấn $ book bên trong loop-Books.php thì nó hoạt động tốt, nhưng tôi muốn tách chúng ra.
<?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 )); ?>
và ở đây bạn tải get_template_part
truy vấn. Và sau này nếu bạn reset postdata
thì tôi nghĩ giải pháp của tôi sẽ hoạt động đúng.
$books->
từ loop-Books.php và tôi hy vọng nó sẽ hoạt động.