【问题标题】:Wordpress - How do I output the last query used by query_posts?Wordpress - 如何输出 query_posts 使用的最后一个查询?
【发布时间】:2019-11-08 16:35:30
【问题描述】:

我正在尝试获取特定日期(即今天)的所有帖子,但由于某种原因它只返回一个。

$wp_posts = query_posts(array(
            'cat' => 4,
            'post_status' => array('any', 'publish', 'future', 'inherit', 'revision', 'pending'), 
            'year' => '2011',
            'monthnum' => '10',
            'day' => '25',                  
            'order_by' => 'post_date',
            'order' => 'ASC'
            ));

这应该在一个类别下发布今天的所有帖子,但无论出于何种原因,它只输出 1 个帖子,我不知道为什么。

起初我认为这可能是一个永久链接问题,但我删除了永久链接,它仍然只返回一个帖子?

在我的本地主机上,代码可以正常工作并输出特定日期所需的所有内容。

此外,我检查了数据库,当天的所有帖子都在那里,并且似乎处于计划或发布状态。

因此,query_posts 没有理由只返回 1 项。

我想输出 query_posts 使用的最后一个查询来调查导致问题的原因。

如何详细输出 query_posts 使用的最后一个查询?

谢谢。

编辑。

我将接受将上述内容转换为详细 SQL 查询的答案,我可以运行该查询以查看发生了什么

【问题讨论】:

  • 每页发帖设置可以限制返回的数量。有什么要检查的。好问题。
  • 我试过改变这个。我创建了一个没有任何内容的虚拟 404 页面并将代码放在那里,但无论出于何种原因,它只返回 1 个结果;但在我的本地主机上,它返回大约 10 个结果。我想知道它是日期问题还是服务器相关问题?

标签: mysql wordpress


【解决方案1】:

查看http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis(请务必注意不要在生产站点上执行此操作的警告)。

解决方案是您可能需要将参数数组中的 posts_per_page 值设置为 -1。

【讨论】:

  • 啊,我会用它来看看出了什么问题,但我确实解决了我的问题。不过我已经接受了你的回答。
【解决方案2】:

我发现了问题所在。

http://codex.wordpress.org/Custom_Queries 似乎暗示 post_limit 有一个默认值。

我使用空白页成功输出了整个对象,并将 WP_Query 与上面发布的帖子数组结合起来。

在其中我发现了一个限制为 0,1 的响应

我不知道为什么它把它放进去,或者为什么它只影响我的实际网站。

但这似乎与我在 Custom_Queries 代码中记录的限制相符。

在我的文件中,我放了这个:

add_filter('post_limits', 'gloss_limits' );

function gloss_limits( )
{
     return "";
}

根据 Custom_Queries URL。

它取消了限制,我终于可以输出那天的所有内容。

我已接受 Jorbin 的回答,因为“保存查询以供分析”是对我的查询的特定回答。

【讨论】:

    【解决方案3】:

    最后一个查询总是存储在$wpdb->last_query 以及$wp_query->request中的帖子查询

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多