質問: 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関数内では使用できません。どうすればこの問題を解決できますか? loop-books.phpの中で$ booksクエリをうまく機能させたとしても、それらを分離したいのです。
回答: 別の方法:ループを開閉してから、ループの内容に マークアップ だけを含めるためにloop-books.phpを使用する。例えば。:<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; // get books query $books = new wp_query(array( 'post_type' => 'wiki', 'posts_per_page' => '50', 'paged' => $paged )); // open books loop if ( $books->have_posts() ) : while ($books->have_posts()) : $books->the_post(); // get loop markup get_template_part( 'loop', 'books' ); // close books loop endwhile; endif; ?> それから、loop-books.phpの中で:<?php the_title(); ?><br/>