我目前正在为客户构建一个主题,他们的要求之一是在“图表”页面上无休止地滚动。他们希望这是分页,并无限滚动加载下一页下面的第一,显示最流行的40首歌曲张贴在网站上。
为了实现这一点,我使用了一个新的WP\\u查询,它在自定义页面模板中运行。无止境卷轴的工作原理是抓取下一页,并在碰到404时结束。问题是,即使没有帖子可显示,仍会继续加载额外的页面。脚本从未命中404,因此它将继续加载。
以下是我的疑问:
<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query(\'posts_per_page=8&meta_key=_count-views_all&orderby=meta_value_num&order=DESC\'.\'&paged=\'.$paged);
$count = 1; while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<div class="count"><?php echo $count; ?></div>
//loop here
<?php $count++; endwhile; ?>
<?php content_nav( \'nav-below\' ); ?>
<?php else : ?>
<?php get_template_part( \'no-results\' ); ?>
<?php endif; ?>
<?php $wp_query = null; $wp_query = $temp;?>
完全相同的查询在索引页和归档页上不会出现任何问题。只有当它位于页面模板中时,才会发生这种情况。
在过去的一天左右,我一直被这件事难住了,我不知道为什么会这样。任何想法都将不胜感激:)
最合适的回答,由SO网友:s_ha_dum 整理而成
脚本从未命中404,因此它将继续加载。
如果我看得对的话,它永远不会碰到404,也不应该碰到404
.
您正在加载一个页面模板,其查找和加载将由主查询完成。那一页总是能找到的——即,不404
.
您的第二个查询(加载帖子的查询)位于页面模板内。不管有没有帖子,都不会触发404
. 当二次查询运行时,这一部分已经过去很久了。
我认为这基本上只是一个设计问题。
我不知道AJAX是如何工作的,但您应该检查查询返回的帖子是否存在,而不是404
由页面返回。当你收到0个帖子时,你就停止了。你真的应该使用AJAX API 也为了这个。