Created
November 14, 2012 15:01
Revisions
-
Matt Berridge created this gist
Nov 14, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,57 @@ <?php // Add past/future events filter add_action( 'restrict_manage_posts', 'my_add_past_prev_filter' ); function my_add_past_prev_filter() { global $typenow; // get our time period filter (if applied) $time_period = $_GET['time_period']; // set our select options $future_option = '<option value="future">Future events</option>'; $past_option = '<option value="past">Past events</option>'; // test for selected option if($time_period=='future') { $future_option = '<option value="future" selected="selected">Future events</option>'; } elseif($time_period=='past') { $past_option = '<option value="past" selected="selected">Past events</option>'; } // output additional filter if( $typenow != "post" && $typenow != "page" && $typenow == "event" ) { echo '<select name="time_period" id="time_period" class="postform">'; echo '<option value="all">All events</option>'; echo $future_option; echo $past_option; echo '</select>'; } } // If filter is set, change the query add_filter( 'parse_query', 'sort_events_by_past_prev_filter' ); function sort_events_by_past_prev_filter($query) { global $pagenow; // get our time period filter (if applied) $time_period = $_GET['time_period']; if (is_admin() && $pagenow=='edit.php' && isset($_GET['post_type']) && $_GET['post_type']=='event' && isset($_GET['time_period']) && $_GET['time_period'] !='all') { // amend the query if($time_period=='future') { $query->query_vars['meta_key'] = 'event_date'; $query->query_vars['meta_value'] = date("Y-m-d"); $query->query_vars['meta_compare'] = '>='; } elseif($time_period=='past') { $query->query_vars['meta_key'] = 'event_date'; $query->query_vars['meta_value'] = date("Y-m-d"); $query->query_vars['meta_compare'] = '<='; } } } ?>