我需要选择两个不同月份的职位(当前,过去)。据我所知,这是不可能通过的m
date参数作为整数数组而不是整数数组,因此我执行两个不同的查询,并将所有帖子返回到同一数组中。
问题是,我如何重新排列帖子的结果池?仅仅将第二个池推送到第一个查询返回的数组中是不够的,因为orderby
参数在两个数组的连接处发现不连续。
我试过使用usort
但我有个错误You can\'t use WP_Post object as an array
.
有什么想法吗?
谢谢
我需要选择两个不同月份的职位(当前,过去)。据我所知,这是不可能通过的m
date参数作为整数数组而不是整数数组,因此我执行两个不同的查询,并将所有帖子返回到同一数组中。
问题是,我如何重新排列帖子的结果池?仅仅将第二个池推送到第一个查询返回的数组中是不够的,因为orderby
参数在两个数组的连接处发现不连续。
我试过使用usort
但我有个错误You can\'t use WP_Post object as an array
.
有什么想法吗?
谢谢
我会这样做:
function my_pseudo_date_query( $where, $query ) {
global $wpdb;
$dq = $query->get(\'my_date_query\');
if( $dq && !empty( $dq[\'after\'] ) ){
$where .= $wpdb->prepare(
" AND {$wpdb->posts}.post_date >= %s"
$dq[\'after\']
);
}
if( $dq && !empty( $dq[\'before\'] ) ){
$where .= $wpdb->prepare(
" AND {$wpdb->posts}.post_date <= %s",
$dq[\'before\']
);
}
return $where;
}
add_filter( \'post_where\', \'my_pseudo_date_query\', 10, 2 );
用法示例:$now = new DateTime( \'now\' );
$first_of_last_month = new DateTime( \'first day of last month\' );
$my_query = new WP_Query( array(
\'my_date_query\' => array(
\'before\' => $now->format( \'Y-m-d H:i:s\' ),
\'after\' => $first_of_last_month->format( \'Y-m-d H:i:s\' ),
);
) );
在本例中,before参数是多余的。after
的键my_date_query
属性非常严格。他们必须在Y-m-d H:i:s
(php)格式。但这就足够了WordPress 3.7 将提供date_query
作为论据。上述代码是“向前兼容”的,因为一旦升级到3.7,就可以删除my_
示例中的前缀PHP5.3+. 尽管解决这个限制相当简单get_posts()
别忘了设置suppress_filters
到false.我有一个名为“on air”的自定义帖子类型,其中包括一个名为“daysonair”的自定义字段。此表单中有一周中每天的复选框。添加/更新帖子时,选中的项目将作为数组存储在自定义字段中。我不知道如何将该自定义字段添加到我的WP\\u Query()搜索中:array( \'key\' => \'daysonair\', \'value\' => \'Thursday\', \'compare\' => \'IN\' ) 我尝试过多种类