如何使用“待处理”帖子进行分页

Posted

技术标签:

【中文标题】如何使用“待处理”帖子进行分页【英文标题】:How to get pagination working with “Pending” Posts 【发布时间】:2012-06-29 22:27:36 【问题描述】:

我正在开发一个允许用户在前端浏览待处理帖子/内容的网站。

但是,我似乎无法使用这些帖子进行分页。我有一个自定义查询,它会在类别页面、存档等上显示待处理帖子的第一页。

但是第 2、3 页等不起作用。

有什么想法吗?

谢谢!

这是我正在使用的示例代码:

$args = array(
    'cat'      => $cat_ID,
    'paged' => get_query_var('paged'),
    'showposts' => 50,
    'posts_per_page' => 50,
    'post_status' => 'pending',

);

query_posts($args);

if( have_posts() ) : while (have_posts()) : the_post();

//Post code inserted here

<?php endwhile; ?>
<?php endif; ?>

【问题讨论】:

这是页面模板的一部分?此外,while 之前的 if 也不需要,并且可能会打乱您的迭代周期 根据scribu.net/wordpress/wp-pagenavi/…,您应该尝试使用“page”变量。如果您能澄清“不起作用”的含义,那就太好了。 您好,这实际上是一个修改后的分类页面。加载该页面时它工作正常,但 /category/page/2/ 不加载。我收到 404 错误页面。在这种情况下,基本上它没有找到“待定帖子”。 “page”与“paged”对我没有任何改变。 您的永久链接结构是什么?基本页面链接是什么样的(当您不指定页面时)? 当然。该页面是example.com/category/category-name。这将显示带有上述代码的待处理帖子。但是与 /page/2/ 及以上相同的链接将给出 404 错误。我将永久链接设置为 /%category%/%postname%/。但是,我不知道永久链接设置是否与此有关,因为“已发布”帖子工作正常并且会显示上面的代码。我认为 Wordpress 只是设置为仅处理分页页面上已发布的帖子。我正在尝试解决这个问题。 【参考方案1】:

如果主查询中没有足够的结果运行到该页面,WordPress 分页将 404。

我确信有更好的方法,但我能想到的唯一方法是在帖子数量多于草稿的存档/搜索页面中使用自定义循环。

例如,将您的自定义循环添加到 search.php 模板并通过传递会生成大量结果的搜索查询(例如“a”)到达它。使用 search.php 将在结果中包含页面、帖子和自定义帖子类型,因此会产生更多结果。

使用 paginate_links 进行分页,它将继续在每个页面上传递 queryvar,之后你应该会很好。

另外,我建议使用 WP_Query 而不是 query_posts。 See here for why.

【讨论】:

是的,目前确实没有答案,除了向 Wordpress 开发团队建议更改。你说的可能是我能找到的最好的选择。感谢您的帮助!

以上是关于如何使用“待处理”帖子进行分页的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GatsbyJS 中对属于特定类别的帖子列表进行分页

使用分页从两个关系(一个是通过访问器)获取记录

按类别过滤 Wordpress 帖子时对 GatsbyJS 页面进行分页

如何在自定义 WP_Query Ajax 上实现分页

使用URL参数在firebase中对博客帖子进行数字分页的正确方法是什么?

如何在 Wordpress 自定义帖子类型查询中包含分页