1

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

これに関するどんな助けもありがたいです。ありがとう!

4

0 に答える 0