So I have a method where I’m setting a value in the database as a timestamp, so this property:
'azure_picture_expiration' => $profile->set_azure_picture_expiration(strtotime('+7 days')),
Sets the following timestamp for example 1605047781
, which is GMT: Tuesday, November 10, 2020 10:36:21 PM
(So 7 days from today).
What I’m attempting to achieve:
I have the following WP_Query
that queries through my profile post type, and looks for all the azure_picture_expiration
and azure_picture_big_expiration
values.
How could I query through and pull in all profiles that will expire in 2 days? Is it possible to query through and pull profiles that will expire within 2 days?
Here is my query:
$profiles = Profile::get([
'post_status' => [
'publish', 'draft', 'pending', 'private'
],
'posts_per_page' => 4,
'meta_query' => [
'relation' => 'OR',
[
'key' => 'azure_picture_expiration',
'value' => '',
'compare' => '',
],
[
'key' => 'azure_picture_big_expiration',
'value' => '',
'compare' => '',
],
],
]);
All help would be appreciated, I don’t have the compare
filled in, because I wasn’t sure how to determine the time.
Advertisement
Answer
This seemed to work, please let me know if you have a better method:
$profiles = Profile::get([
'post_status' => [
'publish', 'draft', 'pending', 'private'
],
'posts_per_page' => -1,
'meta_query' => [
'relation' => 'OR',
[
'key' => 'azure_picture_expiration',
'value' => strtotime('+2 days'),
'compare' => '<=',
],
[
'key' => 'azure_picture_big_expiration',
'value' => strtotime('+2 days'),
'compare' => '<=',
],
],
]);