The date_query_valid_columns WordPress PHP filter allows you to modify the list of valid date query columns.
Usage
add_filter('date_query_valid_columns', 'your_custom_function'); function your_custom_function($valid_columns) { // your custom code here return $valid_columns; }
Parameters
- $valid_columns (string[]): An array of valid date query columns. Defaults are ‘post_date’, ‘post_date_gmt’, ‘post_modified’, ‘post_modified_gmt’, ‘comment_date’, ‘comment_date_gmt’, ‘user_registered’, ‘registered’, ‘last_updated’.
More information
See WordPress Developer Resources: date_query_valid_columns
Examples
Add a custom date column
Add a custom date column named ‘my_custom_date’ to the list of valid date query columns.
add_filter('date_query_valid_columns', 'add_my_custom_date_column'); function add_my_custom_date_column($valid_columns) { $valid_columns[] = 'my_custom_date'; return $valid_columns; }
Remove a default date column
Remove ‘user_registered’ from the list of valid date query columns.
add_filter('date_query_valid_columns', 'remove_user_registered_column'); function remove_user_registered_column($valid_columns) { $key = array_search('user_registered', $valid_columns); if ($key !== false) { unset($valid_columns[$key]); } return $valid_columns; }
Replace a default date column
Replace ‘post_date’ with ‘custom_post_date’ in the list of valid date query columns.
add_filter('date_query_valid_columns', 'replace_post_date_column'); function replace_post_date_column($valid_columns) { $key = array_search('post_date', $valid_columns); if ($key !== false) { $valid_columns[$key] = 'custom_post_date'; } return $valid_columns; }
Limit valid date columns
Limit the valid date query columns to only ‘post_date’ and ‘post_modified’.
add_filter('date_query_valid_columns', 'limit_valid_date_columns'); function limit_valid_date_columns($valid_columns) { return array('post_date', 'post_modified'); }
Clear valid date columns
Clear all valid date query columns.
add_filter('date_query_valid_columns', 'clear_valid_date_columns'); function clear_valid_date_columns($valid_columns) { return array(); }