ฉันมีข้อความค้นหาประเภทโพสต์ที่กำหนดเอง:
<?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 การทำงานดี แต่ฉันต้องการแยกพวกเขาออก
<?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 และฉันหวังว่ามันจะใช้งานได้