【发布时间】:2015-01-04 18:41:27
【问题描述】:
我正在运行 WordPress 查询。要确定我要显示哪些帖子,需要对每个帖子进行计算。
举个例子,假设我所有的帖子都有一个自定义字段“my_custom_field”。该值为 1 到 100 之间的整数。
然后用户也输入一个介于 1 和 100 之间的数字。对于每个帖子,我们从 my_custom_field 的值中减去用户编号。如果结果大于 10,我们会在结果中显示该帖子。
如何运行该查询?我似乎无法弄清楚该往哪个方向发展。
请记住,这只是一个复杂问题的简化示例。假设我们实际上需要对每个帖子进行计算。我意识到在这个简单的例子中,你可以解方程并找出你应该显示的值的范围。这在我的实际使用中不起作用。
这是我可能想要做的一个例子。当然,问题在于您实际上无法在 $args 数组中运行函数和计算。 这只是为了展示我想要完成的工作,我知道这不是 $args 数组的工作方式。
$args = array ( $a = get_field('my_custom_field'); //I'm using ACF which uses get_field, not important
$b = $user_inputted_field //The value the user entered
Display posts where: $a - $b > 10 //Not real code... Just showing my intention
);
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
//Display our posts
}
我已经能够通过基本上将我的 $args 中的代码放入循环的显示部分来启用或阻止帖子显示,但当然这非常草率并且与分页非常混乱。
我需要某种方法来对 WP_Query 对象中的每个帖子运行该计算,并删除所有不符合这些条件的帖子。如何在实际运行循环之前手动过滤这些结果?
【问题讨论】:
-
有了这么少的信息很难回答你的问题。尝试更准确地回答您的问题,并包括您为实现目标所做的工作。这样人们就可以更轻松地回答您的问题。
-
已编辑以使其更加清晰。我将不得不以某种方式通过 WP_Query 对象,对每个帖子运行计算,然后返回一个修改后的对象,只留下符合我条件的帖子。