基于 ACF Datepicker 值的 Wordpress 查询导致没有帖子
Wordpress query based on ACF Datepicker values results in no posts
所以我在postpost类型中添加了一些自定义字段,即event_startdate和event_enddate。我的目标是显示当前正在进行的所有事件(因此当前日期在开始和结束日期之间)。但是,没有 post 显示我当前的代码。
这是我得到的:
<?php
$today = date('Ymd');
$args = array (
'posts_per_page' => '9',
'order' => 'ASC',
'orderby' => 'id',
'meta_query' => array(
array(
'key' => 'event_startdate',
'compare' => '>=',
'value' => $today
),
array(
'key' => 'event_enddate',
'compare' => '<=',
'value' => $today
)
)
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
然后是循环的其余部分。我知道循环有效,因为当删除 meta_query 时所有 post 都会显示。可能是什么问题?我尝试了一些不同的日期格式(硬编码),但这似乎并没有解决它。 post 也在线尝试了其他解决方案,但 none 似乎解决了这个问题。
编辑:同时开始处理另一个查询,这次使用 event_featured,一个 TRUE/FALSE 字段。代码与前面提到的代码相同,除了 args。 return post 也不是:
$args = array (
'post_type' => 'post',
'posts_per_page' => '9',
'order' => 'ASC',
'orderby' => 'id',
'meta_query' => array(
array(
'key' => 'event_featured',
'value' => '1',
'compare' => '=='
)
)
);
我在你的代码中没有看到你在哪里声明了要查询的 post 类型。将 post 类型添加到查询中,查看第一个数组后的第一行。尝试使用这个:
$args = array (
'post_type' =>'posttype',
'posts_per_page' => '9',
'order' => 'ASC',
'orderby' => 'id',
'meta_query' => array(
array(
'key' => 'event_startdate',
'compare' => '>=',
'value' => $today
),
array(
'key' => 'event_enddate',
'compare' => '<=',
'value' => $today
)
)
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
发现问题。我在 PHP 中创建了字段。使用管理界面创建它们对我有用。因此,如果您也为此苦恼,请删除 php 中的字段并在 Wordpress 中重新创建它们。
如果您想将它们包含在您的主题中,请使用 ACF 中的导出工具将字段导出到 PHP 代码。
所以我在postpost类型中添加了一些自定义字段,即event_startdate和event_enddate。我的目标是显示当前正在进行的所有事件(因此当前日期在开始和结束日期之间)。但是,没有 post 显示我当前的代码。
这是我得到的:
<?php
$today = date('Ymd');
$args = array (
'posts_per_page' => '9',
'order' => 'ASC',
'orderby' => 'id',
'meta_query' => array(
array(
'key' => 'event_startdate',
'compare' => '>=',
'value' => $today
),
array(
'key' => 'event_enddate',
'compare' => '<=',
'value' => $today
)
)
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
然后是循环的其余部分。我知道循环有效,因为当删除 meta_query 时所有 post 都会显示。可能是什么问题?我尝试了一些不同的日期格式(硬编码),但这似乎并没有解决它。 post 也在线尝试了其他解决方案,但 none 似乎解决了这个问题。
编辑:同时开始处理另一个查询,这次使用 event_featured,一个 TRUE/FALSE 字段。代码与前面提到的代码相同,除了 args。 return post 也不是:
$args = array (
'post_type' => 'post',
'posts_per_page' => '9',
'order' => 'ASC',
'orderby' => 'id',
'meta_query' => array(
array(
'key' => 'event_featured',
'value' => '1',
'compare' => '=='
)
)
);
我在你的代码中没有看到你在哪里声明了要查询的 post 类型。将 post 类型添加到查询中,查看第一个数组后的第一行。尝试使用这个:
$args = array (
'post_type' =>'posttype',
'posts_per_page' => '9',
'order' => 'ASC',
'orderby' => 'id',
'meta_query' => array(
array(
'key' => 'event_startdate',
'compare' => '>=',
'value' => $today
),
array(
'key' => 'event_enddate',
'compare' => '<=',
'value' => $today
)
)
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
发现问题。我在 PHP 中创建了字段。使用管理界面创建它们对我有用。因此,如果您也为此苦恼,请删除 php 中的字段并在 Wordpress 中重新创建它们。
如果您想将它们包含在您的主题中,请使用 ACF 中的导出工具将字段导出到 PHP 代码。