Date Query

Ajax Load More supports WP_Date_Query parameters for displaying posts by post date, date before/after, and date range.


Introduction

WP_Date_Query is designed to help developers create date-based queries for WordPress, allowing them to filter posts, pages, or other content types based on date ranges, specific dates, or other date-related criteria.

Custom date queries can be implemented for an Ajax Load More instance by utilizing the date_query, date_query_before or date_query_after parameters.

For example, the shortcode below implements a custom WP_Date_Query to display posts published more than 1 month ago.

Example Shortcode[ajax_load_more date_query_before="-1 month"]

Parameters

The following parameters are available to implement a custom date query with Ajax Load More.

date_queryQuery with a custom WP_Date_Query.
Accepts a formatted date string – YYYY-MM-DD-HH-MM-SS.
date_query_compareThe operator for how multiple dates will be compared.
Accepted values: ‘=’, ‘!=’, ‘>’, ‘>=’, ‘<‘, ‘<=’, ‘IN’, ‘NOT IN’
See WP_Date_Query::get_compare().
date_query_relationHow the sub-date queries should be compared. Default = AND
date_query_columnThe DB column to query against. Default = post_date


date_query_beforeDate to retrieve posts before.
Accepts a strtotime() compatible string.
date_query_afterDate to retrieve posts after.
Accepts a strtotime() compatible string.
date_query_inclusiveFor after/before, whether an exact value should be matched or not.

Attempting to query by an invalid date value (e.g. month=13) will generate SQL that returns no results. In these cases, a _doing_it_wrong() error notice will also be thrown.


Standard Date Query

The Ajax Load More date_query parameter accepts a formatted date string of the following dash-separated options: YYYY-MM-DD-HH-MM-SS.

date_query parameters are automatically parsed into year, month, day, hour, minute, second, and week based on the values passed to Ajax Load More.

At a minimum, a year value (YYYY) is required for creating a valid date query.

Note: Separate multiple dates with semi-colons. e.g. date_query="2022;2024"

Basic Date Query Examples

Query posts by specific year (2022).

[ajax_load_more date_query="2022"]

Query posts by exact post date.

[ajax_load_more date_query="2024-12-25"]

Query posts from multiple dates.

[ajax_load_more date_query="2025-01-21;2023-11-08" date_query_relation="OR"]

Date Query Between

Query posts between two dates.

[ajax_load_more date_query="2023-01-01;2025-01-01" date_query_compare=">=;lessthanequalto" date_query_relation="OR"]

Note: When using date_query_compare parameters that contain < you should consider converting these to the helper strings provided by Ajax Load More as they may parsed as HTML elements during the render.
< = lessthan & <= = lessthanequalto


Before & After Date Query

The date_query_before and date_query_after parameters accept any strtotime() compatible and formatted string. These Ajax Load More parameters relate directly to the WP_Query before and after date parameters.

Note: Before or After parameters can NOT be used in combination with other Date Query parameters.

Date Before

Query posts older than 2 years from today’s date.

[ajax_load_more date_query_before="-2 years"]

Date After

Query posts from the past week (7 days).

[ajax_load_more date_query_after="-1 week"]

Date Between

Query posts between two dates. For example, displaying posts between 2021 and 2025.

[ajax_load_more date_query_after="2021-01-01" date_query_before="2025-01-01"]