使用Wordpress查询的过滤器。如果我使用$ where行,如下所示,过滤器可以工作。
在查询中请注意,我有一个meta_key = mymeta_datetime和事件的实际日期时间的meta_value。
当我在过滤器中注释$ where行并尝试上面的行时,meta_value> $ today,此过滤器完全失败,页面上没有显示即将发生的事件。
如何过滤mymeta_datetime以仅显示即将发生的事件?
// setup filter for where clause
function filter_where($where='') {
// filter for future events only
$today = date('Y-m-d H:i');
//$where .= " AND 'meta_value' > '$today'"; // this doesn't work :(
$where .= " AND post_date > '2013-02-15'"; // this works!
return $where;
}
add_filter('posts_where', 'filter_where');
$args = array('post_type' => 'gla_events', 'post_status' => 'publish', 'posts_per_page' => 100, 'caller_get_posts'=> 1, 'orderby'=>'meta_value', 'meta_key'=>'mymeta_datetime', 'order'=>'ASC');
$loop = new WP_QUERY($args);
remove_filter('posts_where', 'filter_where');
if($loop->have_posts()) {...}
对此有任何帮助表示赞赏。谢谢!