你尝试的方式可能是错误的。
WP_Query
没有任何内置功能从两个自定义字段中减去值,然后根据两个字段的减去值返回(或排序)帖子。您可能可以通过posts_clauses
filter或相关的单子句筛选以引入您想要的功能。
我可能不会走这条路,因为复杂的SQL查询(如您需要的查询)可能会变得非常昂贵,执行速度非常慢,特别是随着数据库的增长。您可能希望编写一个一次性脚本,该脚本将接收所有帖子,计算两个自定义字段之间的差异,并将该差异保存在另一个(可能隐藏)自定义字段中。正如我所说,这将是一个一次性的脚本,一旦完成,您将删除它。
然后,只需编写另一个脚本,当其他两个自定义字段中的任何一个被更新时,该脚本会自动更新第三个自定义字段,并使用其他两个自定义字段的差异。为此,您可以查看以下操作updated_post_meta
(参见this answer)。
这样就可以通过第三个自定义字段轻松地查询(或订购)您的帖子,而无需任何额外的筛选、操作或其他操作