我正在对具有字段“ stage”的自定义帖子类型“ task”执行WP_Query。我需要使用“ stage”> =另一个任务的“ stage”来获取所有帖子。问题是stage是一个字符串值,因此在元查询中使用> =运算符将不起作用。
目前,我的技巧是创建一个数组,该数组包含数字值$ stage到50的字符串值,并查询该数组中stage的帖子。目前尚无法解决这个问题,因为任何阶段都不会超过12岁,但不是一个非常可扩展或动态的解决方案。我想知道在对运算符使用WP_query之前是否有更好的方法来对其进行突变?
$stage = get_field('stage', $task_id);
$future_tasks = array();
for ($i = intval($stage); $i <= intval($stage) + 50; $i++) {
array_push($future_tasks, strval($i));
}
$tasks_query_args = array(
'post_type' => array('task'),
'posts_per_page' => -1,
'order' => 'DESC',
'meta_query' => array(
'0' => array(
'key' => 'project',
'value' => $project_id,
'compare' => '=',
),
'1' => array(
'key' => 'stage',
'value' => $future_tasks,
'compare' => 'IN',
),
'relation' => 'AND',
),
);
理想情况下,查询的第二个参数应类似于:
'1' => array(
'key' => 'stage',
'value' => intval($stage),
'compare' => '>=',
),
但这不起作用,因为stage字段的值是一个字符串。
想知道是否有关于如何更好地实现这一目标的想法?
看起来,使用numeric
类型可以解决问题:
$tasks_query_args = array(
'post_type' => array( 'task' ),
'posts_per_page' => - 1,
'order' => 'DESC',
'meta_query' => array(
'0' => array(
'key' => 'project',
'value' => intval( $project_id ),
'compare' => '=',
'type' => 'numeric',
),
'1' => array(
'key' => 'stage',
'value' => intval( $task_id ),
'compare' => '>=',
'type' => 'numeric',
),
'relation' => 'AND',
),
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句