In the context of a Wordpress widget development, I use
WP_Query this way:
$args = array( 'post_type' => 'myType', 'post_per_page' => $number, 'showposts' => $number ); $latest_myTypes = new WP_Query($args); if ($latest_myTypes->have_posts()): global $post; //etc.
myType post is saved, it stores some values in the table
wp_postmeta, in particular two keys:
day (an integer) and
month (a string).
As you can see, in the preceding code I get all the posts of type
I need a different thing: since any single post contains upcoming events, I want to get all the posts where the date is equal or after the current date (so,
day must be at least today AND the
month should be at least the current month).
Is it possible to modify my
WP_Query to filter the posts this way?
I've red about
meta_query but I've not understood how to integrate a meta query to my current query, and even how to create the query itself.
In pseudocode, I should get all the posts
day >= date("j") AND date("n", strtotime(month)) >= date("n")
Can you help me?
Update: I know it would be much easier if I could store the Unix timestamp of an upcoming event date: problem is I inherited code from another developer and found that he used metaboxes to automatically save data. I couldn't find a way to alter his code to save day, month and year submitted by a user as a combined and unique key value, since he uses three different fields (it would be interesting if I could create a sort of computed field)
Update: I suppose I solved this way:
$args = array( 'post_type' => 'myType', 'post_per_page' => $number, 'showposts' => $number, 'meta_query' => array( array( 'key' => 'month', 'value' => array(date("F"),date("F", strtotime('+1 month'))), 'compare' => 'IN' ), array( 'key' => 'day', 'value' => date("j"), 'compare' => '>=' ), array( 'key' => 'year', 'value' => date("Y"), 'compare' => '=' ), ), );
It is working fine. Any other comment, solution, suggestion, etc. is eventually appreciated.