Wordpress WP_Query meta_带有2个自定义字段的查询日期范围
我有一个自定义帖子类型“事件”,其中包含开始日期和结束日期的自定义字段。我试着把即将发生的事情列一个简单的清单。如果我只查询开始日期>=今天的事件,它可以正常工作。如果我在meta_查询中添加“AND”end_date='的所有事件, '类型'=>'数值', ), 排列( '键'=>'结束日期', “价值”=>今天的美元, “比较”=>“=”, 'orderby'=>'meta_value_num', “订单”=>“ASC”, “元查询”=>数组( '关系'=>'和', 排列( '键'=>'结束日期', “价值”=>今天的美元, “比较”=>“=”, 'orderby'=>'meta_value_num', “订单”=>“ASC”, “元查询”=>数组( '关系'=>'和', 排列( '键'=>'开始日期', “价值”=>今天的美元, '比较'=>'>=', '类型'=>'数值', ), 排列( '键'=>'结束日期', “价值”=>今天的美元,Wordpress WP_Query meta_带有2个自定义字段的查询日期范围,wordpress,date-range,Wordpress,Date Range,我有一个自定义帖子类型“事件”,其中包含开始日期和结束日期的自定义字段。我试着把即将发生的事情列一个简单的清单。如果我只查询开始日期>=今天的事件,它可以正常工作。如果我在meta_查询中添加“AND”end_date='的所有事件, '类型'=>'数值', ), 排列( '键'=>'结束日期', “价值”=>今天的美元, “比较”=>“=”, 'orderby'=>'meta_value_num', “订单”=>“ASC”, “元查询”=>数组( '关系'=>'和', 排列( '键'=>'结束
“比较”=>“不确定您在尝试什么,但在选择从今天或将来开始(开始日期>=$today)到今天或过去结束(结束日期以下是我最后要做的事情时,似乎不返回任何内容是合乎逻辑的:
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'meta_value_num' => $yesterday,
'meta_compare' => '<=',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_date',
'value' => array($first_minute,$last_minute),
'compare' => 'BETWEEN',
'type' => 'NUMERIC',
),
array(
'key' => 'end_date',
'value' => $yesterday,
'compare' => '>=',
'type' => 'NUMERIC',
),
array(
'key' => 'start_date',
'value' => $yesterday,
'compare' => '>=',
'type' => 'NUMERIC',
),
)
)
$args=数组(
“post_类型”=>“事件”,
“每页帖子数”=>-1,
“元密钥”=>“开始日期”,
“meta_value_num”=>昨天$,
“元比较”=>“=”,
'类型'=>'数值',
),
排列(
'键'=>'开始日期',
“value”=>昨天美元,
'比较'=>'>=',
'类型'=>'数值',
),
)
)
这将获取当前月份的事件。我为每月的第一分钟、最后一分钟和“昨天”(即昨天的11:59:59)输入变量。这就是我使用它的方式,它对我来说工作正常
$the_query = new WP_Query(array(
'post_type' => 'job',
'posts_per_page' => 25,
'meta_query' => array(
array(
'key' => 'published_date',
'value' => array('20140401','20140405'),
'compare' => 'BETWEEN',
'type' => 'DATE'
)
)
));
if ($the_query->have_posts()) {
echo '<ul>';
while ($the_query->have_posts()) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
echo 'Sorry! No Posts';
}
wp_reset_postdata();
$thew_query=新的WP_查询(数组)(
“职位类型”=>“职务”,
“每页帖子数”=>25,
“元查询”=>数组(
排列(
'键'=>'发布日期',
'值'=>数组('20140401','20140405'),
'比较'=>'之间的',
'类型'=>'日期'
)
)
));
if($the\u query->have\u posts()){
回声“”;
while($the\u query->have\u posts()){
$the_query->the_post();
回显“- ”。获取标题();
}
回声“
”;
}否则{
echo‘对不起!没有帖子’;
}
wp_reset_postdata();
法典中最重要的注释
仅当日期以YYYYMMDD格式存储并使用此格式测试时,“type”日期才与“compare”值一起使用
Alexandru Florentin Popescu是对的!请使用您的代码执行以下操作:
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_date',
'value' => $today,
'compare' => '<=',
'type' => 'NUMERIC',
),
array(
'key' => 'end_date',
'value' => $today,
'compare' => '>=',
'type' => 'NUMERIC',
),
));
$args=数组(
“post_类型”=>“事件”,
“每页帖子数”=>-1,
“元密钥”=>“开始日期”,
'orderby'=>'meta_value_num',
“订单”=>“ASC”,
“元查询”=>数组(
'关系'=>'和',
排列(
'键'=>'开始日期',
“价值”=>今天的美元,
“比较”=>“=”,
'类型'=>'数值',
),
));
您只需在两个数组中更改键“比较”
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'meta_value_num' => $today,
'meta_compare' => '>=',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_date',
'value' => $today,
'compare' => '>=',
'type' => 'NUMERIC',
),
array(
'key' => 'end_date',
'value' => $today,
'compare' => '<=',
'type' => 'NUMERIC',
),
)
);
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'meta_value_num' => $yesterday,
'meta_compare' => '<=',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_date',
'value' => array($first_minute,$last_minute),
'compare' => 'BETWEEN',
'type' => 'NUMERIC',
),
array(
'key' => 'end_date',
'value' => $yesterday,
'compare' => '>=',
'type' => 'NUMERIC',
),
array(
'key' => 'start_date',
'value' => $yesterday,
'compare' => '>=',
'type' => 'NUMERIC',
),
)
)
$the_query = new WP_Query(array(
'post_type' => 'job',
'posts_per_page' => 25,
'meta_query' => array(
array(
'key' => 'published_date',
'value' => array('20140401','20140405'),
'compare' => 'BETWEEN',
'type' => 'DATE'
)
)
));
if ($the_query->have_posts()) {
echo '<ul>';
while ($the_query->have_posts()) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
echo 'Sorry! No Posts';
}
wp_reset_postdata();
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_date',
'value' => $today,
'compare' => '<=',
'type' => 'NUMERIC',
),
array(
'key' => 'end_date',
'value' => $today,
'compare' => '>=',
'type' => 'NUMERIC',
),
));