Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
442 views
in Technique[技术] by (71.8m points)

php - Wordpress get posts between date range using a date meta field

I have a post type that uses a custom meta field called start_date. I want to be able to get all posts that have a start_date between date1 and date2. I have been able to figure out how to get posts before or after a date using wp_query by declaring the query type as "DATE".

$queryargs = array('meta_key' => 'start_date', 'meta_value' => "2016-06-01", 'meta_compare' => '>', 'type' => 'DATE','posts_per_page' => $instance['pastlimit']);

This pulls posts with a start_date after the 1st, but i also want to make it limit dates that dont occur after the 1st of the next month. I cant add the same args again as they dont specify the difference in the constraint. Is it possible to alter the query i have to get posts between a date range.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to do a meta_query and compare BETWEEN an array of DATEs:

$queryargs = array(
    'meta_query' => array(
        array(
            'key' => 'start_date', 
            'value' => array('2016-06-01', '2016-07-01'),
            'compare' => 'BETWEEN', 
            'type' => 'DATE',
        ),
    ),
    'posts_per_page' => $instance['pastlimit']
);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...