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()) {...}
これに関するどんな助けもありがたいです。ありがとう!