Home Forums General Issues Hide posts if custom field date is less than current date?


Hide posts if custom field date is less than current date?

  • Hello,

    I am creating a custom post type archive to display a list of training courses sorted by a custom field “course_start” (date picker – yymmdd) and by the “course_type” which is “2 Day TEFL Fast-Track Course”. The custom post type name is “courses”.

    What I need to do is hide any “posts” which have a course_date older than the current date (ie only show courses that are happening today or in the future).

    Below is my current WP Query

    $args = array(
    	'post_type' 		=> 'courses',
    	'meta_key' 			=> 'course_start', 
    	'orderby' 			=> 'meta_value_num',
    	'order'				=> 'ASC',
    	'posts_per_page'	=> '4',
    	'paged' 			=> $paged,
    	'meta_query'		=> array(
    					'key'		=> 'course_type',
    					'value'		=> '2 Day TEFL Fast-Track Course',
    					'compare' 	=> '='
    $temp = $wp_query;
    $wp_query = null;
    $wp_query = new WP_Query();

    How would I go about doing this?

    Thank you.

  • I’ve been having some trouble with this as well. I have a “Upcoming Events” page, and a “Past Events” page. Each event has a custom field called “event_date”.

    I want to create a loop that displays all of the events greater than today.

    From what I’ve gathered in the three links above, I would put this in my functions.php file:

    function custom_unixtimesamp ( $post_id ) {
        if ( get_post_type( $post_id ) == 'event_type' ) {
    	$event_date = get_post_meta($post_id, 'event_date', true);
    		if($event_date) {
    			$dateparts = explode('/', $event_date);
    			$newdate1 = strtotime(date('d.m.Y H:i:s', strtotime($dateparts[1].'/'.$dateparts[0].'/'.$dateparts[2])));
    			update_post_meta($post_id, 'unixstartdate', $newdate1  );
    add_action( 'save_post', 'custom_unixtimesamp', 100, 2);

    Then I would add something like this to my page template:

    							$today = time();
    							$args = array(
    								'post_type' => 'event_type',
    								'posts_per_page' => 5,
    								'meta_query' => array(
    										'key' => 'unixstartdate',
    										'compare' => '>=',
    										'value' => $today,
    								'meta_key' => 'event_date',
    								'orderby' => 'meta_value',
    								'order' => 'ASC',
    							$query = new WP_Query( $args );
    							$event_type = $query->posts;
    							<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    Right now that’s not turning up any results. My post-type is called “event_type”, and the key is “event_date”.

    Any thoughts on where I’m going wrong?

Viewing 4 posts - 1 through 4 (of 4 total)

The topic ‘Hide posts if custom field date is less than current date?’ is closed to new replies.