分页的WP_QUERY不会返回404,即使帖子不存在

时间:2013-02-24 作者:Syndrohme

我目前正在为客户构建一个主题,他们的要求之一是在“图表”页面上无休止地滚动。他们希望这是分页,并无限滚动加载下一页下面的第一,显示最流行的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;?>
完全相同的查询在索引页和归档页上不会出现任何问题。只有当它位于页面模板中时,才会发生这种情况。

在过去的一天左右,我一直被这件事难住了,我不知道为什么会这样。任何想法都将不胜感激:)

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

脚本从未命中404,因此它将继续加载。

如果我看得对的话,它永远不会碰到404,也不应该碰到404.

您正在加载一个页面模板,其查找和加载将由主查询完成。那一页总是能找到的——即,不404.

您的第二个查询(加载帖子的查询)位于页面模板内。不管有没有帖子,都不会触发404. 当二次查询运行时,这一部分已经过去很久了。

我认为这基本上只是一个设计问题。

我不知道AJAX是如何工作的,但您应该检查查询返回的帖子是否存在,而不是404 由页面返回。当你收到0个帖子时,你就停止了。你真的应该使用AJAX API 也为了这个。

结束

相关推荐

动态观察滑块和事件管理器插件JavaScript

我有这个滑块(环绕滑块http://foundation.zurb.com/docs/orbit.php ) 和wordpress插件(事件管理器http://wp-events-plugin.com/ ) 加载所有jQuery ui内容(/** * Enqueing public scripts and styles */ function public_enqueue() { //Scripts wp_enqueue_script