Wordpress filter_where:过滤我的meta_value不起作用

时间:2013-02-27 17:10:13

标签: wordpress filter

使用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()) {...}

对此有任何帮助表示赞赏。谢谢!

0 个答案:

没有答案