如何按多个自定义域对自定义帖子类型进行排序?

时间:2013-08-01 作者:Haris

如何按自定义字段“agenda\\u date”和“agenda\\u time”显示具有“agenda”自定义类型的帖子?

“agenda\\u date”是日期自定义字段。agenda\\u time is text自定义字段

我试过这个,但不起作用:

$agenda_arg = array(\'post_type\' => \'agenda\',
 \'cat\' => $cat_id,
 \'posts_per_page\' => -1,
 \'meta_query\' => array(
        \'key\' => \'agenda_date\',
        \'value\' => date("Y-m-d"),
        \'compare\' => \'>=\'
    ),
    \'orderby\' => \'meta_value\',
    \'meta_key\' => \'agenda_date\',
    \'orderby\' => \'meta_value\',
    \'meta_key\' => \'agenda_time\',
);

1 个回复
SO网友:kaiser

关于代码的一些注意事项-不需要用“不起作用”来注释它,因为这是一种解释,而不是通过猜测来解决问题的“解决方案”。

保存数据这是最烦人的事情:任何人都不应该在不同的列中保存日期和时间。根本没有意义。至少命名了PHP日期和时间处理类DateTime 这是有原因的。

关于date( \'Y-m-d\' ): 你知道这只会让你回到今天吗?

数据类型元查询允许type 参数和getDATEDATETIME 可获得的那就不可能date() 打开时间值。有time() (对于当前时间)对于它。

$agenda_arg = array(
    \'post_type\' => \'agenda\',
    \'cat\' => $cat_id,
    \'posts_per_page\' => -1,
    \'meta_query\' => array(
        array(
            \'key\'     => \'agenda_date\',
            \'value\'   => date( "Y-m-d" ),
            \'type\'    => \'DATE\',
            \'compare\' => \'>=\'
        ),
        array(
            \'key\'     => \'agenda_time\',
            \'value\'   => time(),
            \'type\'    => \'DATETIME\',
            \'compare\' => \'>=\'
        )
    ),
);
最后一点:我会试着放下agenda_time 先阵列,看看是否有效。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post