'-1 minute', 'minutes ago' => '-1 minute', 'hour ago' => '-1 hour', 'hours ago' => '-1 hour', 'day ago' => '-1 day', 'days ago' => '-1 day', 'week ago' => '-1 week', 'weeks ago' => '-1 week', 'month ago' => '-1 month', 'months ago' => '-1 month', 'year ago' => '-1 year', 'years ago' => '-1 year', ]; $date_query = []; $validDateFound = false; foreach ( $radioInputs as $key => $value ) { // URL decode the value first, then sanitize $value = sanitize_text_field( urldecode( $value ) ); // Skip empty values if ( empty( $value ) ) { continue; } // Check if the value ends with any of the time types foreach ( $timeMappings as $timeType => $timeValue ) { if ( str_ends_with( $value, $timeType ) ) { // Extract the number from the value (e.g., "2 days ago" -> "2") $number = (int) preg_replace( '/[^0-9]/', '', $value ); if ( $number > 0 ) { // Create the proper time string for WordPress date query $timeString = "-{$number} " . str_replace( ' ago', '', $timeType ); } else { $timeString = $timeValue; } // Validate the date calculation $calculatedDate = date( 'Y-m-d H:i:s', strtotime( $timeString ) ); if ( $calculatedDate === false || $calculatedDate === '1970-01-01 00:00:00' ) { // Invalid date, skip this value continue; } // Use a more explicit date format for better compatibility $date_query[] = [ 'after' => $calculatedDate, 'inclusive' => true, 'column' => 'post_date', ]; $validDateFound = true; break; // Found a match, no need to check other time types } } } // Only return date query if we found valid dates return $validDateFound ? $date_query : false; } /** * Post Date Radio Filter */ function adqs_lqf_post_date_without_ajax( $query_args ) { $date_query = adqs_get_post_date_radio_filter( $_GET ); // Only apply date query if we have valid date filters if ( empty( $date_query ) || $date_query === false ) { return $query_args; } // Ensure we have a proper date query structure if ( is_array( $date_query ) && count( $date_query ) > 1 ) { $query_args['date_query'] = [ 'relation' => 'OR', $date_query, ]; } else { $query_args['date_query'] = $date_query; } return $query_args; } add_filter( 'adqs_listing_query_filter_args', 'adqs_lqf_post_date_without_ajax' ); function adqs_lqf_post_date_with_ajax( $query_args, $args ) { $date_query = adqs_get_post_date_radio_filter( $args ); // Only apply date query if we have valid date filters if ( empty( $date_query ) || $date_query === false ) { return $query_args; } // Ensure we have a proper date query structure if ( is_array( $date_query ) && count( $date_query ) > 1 ) { $query_args['date_query'] = [ 'relation' => 'OR', $date_query, ]; } else { $query_args['date_query'] = $date_query; } return $query_args; } add_filter( 'adqs_listing_query_ajax_filter_args', 'adqs_lqf_post_date_with_ajax', 10, 2 );