我希望按日期限制get_posts()结果 我尝试使用以下内容,但它不适合我...
任何人都可以告诉我,如果我这样做是正确的吗?为什么表现不如预期?
add_filter( 'posts_where', 'filter_dates_between' );
$args=array(
'post_type'=>'log',
'suppress_filters' => false,
'post_status'=>'private',
'numberposts'=> -1,
'meta_key'=>'_wpcf_belongs_agent_id','meta_value'=>$agentId);
$logs=get_posts($args);
remove_filter( 'posts_where', 'filter_dates_between' );
这是过滤功能
function filter_dates_between( $where ='' ) {
global $dateFrom,$dateTo,$wpdb;
$where .= $wpdb->prepare( " AND post_date >= %s", $dateFrom );
$where .= $wpdb->prepare( " AND post_date <= %s", $dateTo );
return $where;
}
答案 0 :(得分:0)
你的代码很好。我认为问题来自你传递的日期,它们被视为字符串。
最后以此示例格式确保
"AND post_date >= '2009-03-01' AND post_date <= '2009-03-15'"
或者只是
"AND cast(post_date as datetime) between cast... AND cast...