使WordPress成为核心

开的10年前

关闭9年前

上次修改时间3年前

#29167 关闭 缺陷(bug) (固定的)

查询垃圾帖子时的WP_Query错误

报告人: 伊宾尼翁简介 伊宾尼翁 所有者: 布内博格斯的简介 布内博格斯
里程碑: 4.2 优先: 正常的
严重程度: 正常的 版本: 3.8
组件: 查询 关键词: has-patch接口
重点: 复写的副本:

描述

在使用Backbone和轮询服务器以检查帖子的更改时,我遇到了一个我认为是错误的问题。

似乎在指定要检索的帖子时,如果帖子被丢弃,那么WP_Query对象将不包含帖子。然而,如果我要查询垃圾帖子,就会显示垃圾帖子。

通过以下两个查询,我能够针对主干版本复制此错误。

这个查询将返回我在数据库中的垃圾帖子。以下是WP_Query对象的转储:http://pastebin.com/zi50DKGt

$trashed=新WP_Query(阵列(“post_status”=>“垃圾桶”,));

此查询不返回垃圾帖子。以下是用于以下查询的转储WP_Query对象:http://pastebin.com/MRf8gYj1

$trashed=新WP_Query(阵列(“p”=>4));

到目前为止,我可以理解这种行为,因为不显示被破坏的帖子是有意义的。但是,如果查询明确地按ID请求post,并指定post_status被丢弃,我希望检索被丢弃的post。事实并非如此。

$trashed=新WP_Query(阵列(“post_status”=>“垃圾桶”,“p”=>4));

以下是上述查询的转储WP_Query对象:http://pastebin.com/1PgTg7e2

附件(1)

29167.迪夫(587字节)-由添加伊宾尼翁 10年前.
如果正确,则返回可能不公开的帖子的第一个补丁后置状态已设置。

将所有附件下载为:.zip文件

更改历史记录(10)

@伊宾尼翁
10年以前

返回可能不公开的帖子的第一个补丁(如果正确)职位_状态已设置。

#2 @伊宾尼翁
10年以前

  • 关键词 has-patch接口 需求-测试 开发人员反馈补充

我在我的非正式测试中附加了一个补丁来修复这个问题,尽管我还没有通过PHPUnit运行这个补丁。

#3 @伊宾尼翁
10年以前

  • 关键词 需求-测试远离的

我已验证所有查询组测试是否通过或跳过。此外,我还创建了一个单元测试来验证建议的补丁之前是否存在bug,之后是否没有bug。

这是我运行的单元测试的屏幕截图。第一个测试没有建议的补丁。第二个测试是使用建议的补丁。

https://i.cloudup.com/dN6SQuzcaE.png

此外,这里是我提出的单元测试,用于测试对特定垃圾帖子的查询。

<?php(电话)/***测试以确保在post_status设置为“trash”时可以查询被丢弃的帖子。**@group查询**/类Tests_Trashed_Post_Query扩展了WP_UnitTestCase{公共函数setUp(){父级::setUp();$this->post_id=$this->工厂->post->create(数组('post_title'=>'some-post','post_status'=>'垃圾');}公共函数test_query_trash(){$post=新WP_Query(阵列('p'=>$this->post_id,“post_status”=>“垃圾”));$this->assertCount(1,$post->posts);}}

#4 @泰利沃思
10年以前

  • 版本已从更改大旅行箱3.8

#5 @布内博格斯
9年以前

我已经确认了这个错误。这里的基本策略(如果post_status被显式请求,则白名单posts)看起来不错,但我认为我们需要更多的逻辑来解释构建post_statu子句的所有方法('any'等)。我将从编写一些单元测试开始。

#6 @布内博格斯
9年以前

31047:

为的“post_status”行为添加测试WP_查询.

请参见#29167.

#7 @布内博格斯
9年以前

  • 关键词 开发人员反馈远离的
  • 里程碑已从更改等待审查4.2

#8 @布内博格斯
9年以前

  • 所有者设置为布内博格斯
  • 分辨率设置为固定的
  • 状态已从更改新的关闭

31321:

查询特定帖子时,只要指定了非公共状态,就允许返回该状态的帖子。

例如,这使得可以使用
第页的参数工作包查询(_Q),即使帖子在垃圾箱中,也要包括
这个post_status=垃圾参数。

道具脱落。
修复#29167.

这张票是在松弛(Slack)在#核心主题中由彩色Toones提供。查看日志.


3年以前

注:请参见TracTickets公司有关使用的帮助门票。