【问题标题】:WP Query, with ACF to NOT show posts with a date older than todayWP Query,使用 ACF 不显示日期早于今天的帖子
【发布时间】:2016-06-28 10:07:13
【问题描述】:

早上好,

如果自定义字段 (event_date) (ACF) 早于今天,我将尝试循环浏览特定类别的帖子。我正在使用的查询是:

$today = current_time('Ymd');
$args = array(
'category' => 42, // Events category
'post_status' => 'publish', // Published
'posts_per_page' => '0', // Unlimited posts per page
'meta_query' => array(
    array(
        'key' => 'event_date', // Only loop through posts when the event date
        'compare' => '>', // Is greater than $today, ie in the future
        'value' => $today, 
    )
),
'meta_key' => 'event_date',
'orderby' => 'meta_value',
'order' => 'ASC',
);

在 ACF 中,我已将保存日期设置为默认日期 (yymmdd),并将其设置为与 $today 变量 (Ymd) 匹配,但它仍显示 6 月 23 日的事件。

客户希望它们列出以按日期顺序显示事件,但不显示过去的事件。我已经完成了一半的工作,但是这个给我带来了一些问题,因为我相信它应该可以工作。我已经仔细检查了后端的所有内容,一切看起来都很好。我可能也有一个金发的时刻......

任何帮助将不胜感激!

谢谢!

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    查看codex,看起来 WP 可能存在按由数字组成的 meta_value 排序的问题。复制如下:

    'meta_value' - 请注意,'meta_key=keyname' 也必须存在于 查询。另请注意,排序将按字母顺序排列,即 对于字符串(即单词)很好,但对于数字(例如 1、3、34、4、56、6 等,而不是你可能的 1、3、4、6、34、56 自然期待)。使用 'meta_value_num' 代替数值。 如果要将元值转换为,也可以指定 'meta_type' 特定类型。可能的值为 'NUMERIC'、'BINARY'、'CHAR'、 'DATE'、'DATETIME'、'DECIMAL'、'SIGNED'、'TIME'、'UNSIGNED',与 在“$meta_query”中。使用“meta_type”时,您还可以使用 meta_value_* 因此。例如,当使用 DATETIME 作为“元类型”时,您可以 使用 'meta_value_datetime' 定义订单结构。

    所以我会先尝试meta_value_num 看看它是否有效。 如果没有,我会将 meta_type 转换为 DATEDATETIME


    注意事项:

    • 'posts_per_page' => -1, 显示所有帖子不是'posts_per_page' => '0',
    • 'cat' => 42, 不是 'category' => 42,

    【讨论】:

    • 谢谢伙计,完全错过了最后几点!它有点工作.. 7 月 23 日的活动仍在显示,但在列表的最底部,因此在将 'meta_value' 更改为 'meta_value_num'(没有 'meta_type')后,排序现在正在工作。奇怪的是这个......链接是touchstonecrm.co.uk/events如果你想看看我的意思
    • 如果current_time 返回一个字符串应该没问题。你认为meta_value_num 的同样问题发生在compare 上吗?因为问题可能是比较字符串与数字不同。 meta_query 中有一个 type 参数。您可以尝试将其设置为不同的值吗?
    • 试试'type' => 'NUMERIC',
    猜你喜欢
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2013-12-26
    • 1970-01-01
    • 2022-11-24
    • 2018-10-27
    • 1970-01-01
    相关资源
    最近更新 更多