如果没有提供足够的详细信息,请在本论坛上发布第一篇帖子。
我正在尝试使用WP\\u Query收集具有高级自定义字段(WP Plugin)的CPT;结束日期“;,该字段是日期选择器。我希望查询返回其个人之前的所有帖子;“结束日期”;以及所有没有;“结束日期”;如果用户不知道/不想添加。基本上,如果;“结束日期”;已通过。
以下是我迄今为止所做的尝试,但收效甚微
$meta_query = array(
\'relation\' => \'OR\',
array(
\'key\' => \'vacancy_end_date\',
\'value\' => date(\'Ymd\'),
\'type\' => \'DATE\',
\'compare\' => \'>=\'
),
array(
\'key\' => \'vacancy_end_date\',
\'value\' => \'\',
\'type\' => \'DATE\',
\'compare\' => \'=\'
)
);
$args = [
\'post_type\' => \'vacancy\',
// origionally 9
\'posts_per_page\' => -1,
\'meta_key\' => \'vacancy_end_date\',
\'meta_query\' => $meta_query,
];
$posts = new \\WP_Query($args);
SO网友:Max
以何种形式vacancy_end_date
是否由ACF存储在数据库中?确保你要的是相同的表格。一、 e。date(\'Ymd\')
生产20200421
但是你的vacancy_end_date
可能会存储为unix stamp stamp,这将是一个字符串1619028671
所以你永远也配不上它。
我认为你不需要\'meta_key\' => \'vacancy_end_date\',
线路输入$args
除了meta_query
.
https://generatewp.com/wp_meta_query/ 建议您:
$meta_query = array(
\'relation\' => \'OR\',
array(
\'key\' => \'vacancy_end_date\',
\'value\' => $date,
\'compare\' => \'>=\',
),
array(
\'key\' => \'vacancy_end_date\',
\'value\' => \'\',
\'compare\' => \'=\',
),
);
$args = array(
\'post_type\' => \'vacancy\',
\'meta_query\' => $meta_query,
);
$query = new WP_Query( $args );
你只需要定义
$date
准确地说,如前所述。
SO网友:Connavear
这就成功了。Ymd是正确的日期格式。为了让帖子显示没有添加值的地方,我只需要引用没有值的CPT并将其设置为“不存在”。
$meta_query = [
\'relation\' => \'OR\',
[
\'key\' => \'vacancy_end_date\',
\'value\' => date(\'Ymd\'),
\'compare\' => \'>=\',
],
[
\'key\' => \'vacancy_end_date\',
\'compare\' => \'NOT EXISTS\'
],
];
$args = [
\'post_type\' => \'vacancy\',
\'meta_query\' => $meta_query,
\'posts_per_page\' => -1,
];
$posts = new \\WP_Query($args);