我有一个自定义循环,显示我想在所有帖子页面底部显示的网站的所有帖子。以下是循环:
function show_all_posts() {
$ppp = 8;
$page = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
$args = array(
\'posts_per_page\' => $ppp,
\'post__not_in\' => get_option(\'sticky_posts\'),
\'paged\' => $page
);
$All = new WP_Query($args);
echo \'<section class="posts infinite-container">
<h3 class="legend">Keep Looking...</h3>\';
split_posts($All, true);
}
循环最初是工作的,但当需要调用下一个帖子(无限加载)时,什么都没有出现。我在站点上有各种其他类似的循环,它们都在工作,包括无限加载。我能想到的唯一区别是,这一个特殊的页面是在帖子页面上使用的(我使用的是singular.php),而其他页面是在主页和归档页面上使用的。事实上,当我在主页中使用show\\u all\\u posts()函数时,效果很好!
以下是我编写的split\\u posts函数,以防有帮助:
function split_posts($Query, $infinite = false) {
$temp_query = $wp_query;
$wp_query = NULL;
$wp_query = $Query;
if ($Query->have_posts()) :
$i = 1;
while ($Query->have_posts()) : $Query->the_post();
if ($i % 4 == 1) :
if ($infinite) echo \'<div class="pRow infinite-item">\';
else echo \'<div class="pRow">\';
endif;
$ID = get_the_ID();
post_template($ID);
if ($i % 4 == 0) echo \'</div>\';
$i++;
endwhile;
if ($infinite) :
echo \'</section>
<p class="infinite-more-link-wrap">\';
next_posts_link(\'More...\', $Query->max_num_pages);
echo \'</p>\';
endif;
else :
no_posts_error();
endif; wp_reset_postdata();
$wp_query = NULL;
$wp_query = $temp_query;
}
我想出于某种原因,max\\u num\\u pages调用无法看到更多的帖子。任何帮助都将不胜感激!