自定义wordpress元查询(无结果)

时间:2016-01-03 15:54:06

标签: php wordpress advanced-custom-fields wp-query

问题

我正在循环浏览Wordpress中的自定义帖子类型(高级自定义字段)。我只想显示 start_date 等于$ newdate变量的事件,该变量在开头定义。

start_date的格式为YYYY-MM-DD HH:mm(与$ newdate相同)。 $ newdate设置为当天的开头,因此我不会排除当天不同时段的事件,并且比较设置为大于(仅用于测试查询)。

但是我没有得到任何结果。

<?php
$newdate = date('Y-m-d 00:00');
//<-- Start the Loop. -->!
$args = array( 
        'post_type' => 'epsa_events', 
        'posts_per_page' => 5,
        'orderby' => 'meta_value',
        'order' => 'ASC',
        'meta_query' => array (
            array(
            'key' => 'start_time',
            'value'   => $newdate,
            'compare' => '>=',
            'type' => 'datetime' 
            )
        )
    );

$loop = new WP_Query( $args );

2 个答案:

答案 0 :(得分:0)

尝试此查询: -

from django.db import models
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _


class MyModel(models.Model):
    goal = models.DecimalField(decimal_places=2, max_digits=16, 
              validators=[MinValueValidator(1)])

    def clean(self):
        if self.goal < 1:
            raise ValidationError(_('Only numbers equal to 1 or greater are accepted.'))

答案 1 :(得分:0)

我猜你在这里有一些小错误。

首先,如果您使用'orderby' => 'meta_value',则必须在'meta_key' => KEYVALUE添加$args,其中KEYVALUE是您要用于排序的自定义字段的名称。查看Order & Orderby Parameters上的WP_Query文档。

其次,假设您的start_date字段类型为日期时间选择器 ,如果您想要获取已经开始的所有事件,请使用错误的比较运算符因此,假设您还希望按日期排序,则$args代码应为:

$args = array(
    'post_type'      => 'epsa_events',
    'posts_per_page' => -1,
    'orderby'        => 'meta_value',
    'order'          => 'ASC',
    'meta_key'       => 'start_time',
    'meta_type'      => 'DATETIME'
    'meta_query'     => array (
        array(
            'key'     => 'start_time',
            'compare' => '<=',
            'value'   => $newdate,
            'type'    => 'DATETIME'
        )
    )
);

同时查看日期时间选择器 documentation

我希望这有帮助!