获取自定义日期之间的帖子

时间:2013-08-06 作者:Julian F. Weinert

我创建了一个event CPT和带有日期的元框。我将日期保存为post_meta 在表单中dd.mm.yyyy.

现在我想创建一个快捷码,查询所有日期符合条件的帖子(例如)

(01.05.2013 <= {event_date} <= 21.08.2013)
我可以将字符串转换为日期对象或其他对象。但我甚至没有一点方法来比较自定义查询meta_values.

你能想出一个好的出发点吗?还是我需要一种完全不同的方法?

EDIT

我突然发现了一些东西(也许我得到了正确的谷歌想法)。我读到的建议将日期保存在yyyy-mm-dd 类型所以我提出了一个问题:

query_posts(array(\'meta_query\' => array(array(\'meta_key\' => \'ows_schedule_field-date\', \'meta_value\' => \'2013-08-15\', \'type\' => \'date\', \'compare\' => \'==\'))));
我收到了一封写着确切日期的邮件。但不幸的是,查询返回了一些随机的其他帖子,这些帖子甚至没有这个meta。

EDIT 2

我也试过这个,但没有成功。。。

query_posts(array(\'post_type\' => \'schedule_event\', \'meta_key\' => \'ows_schedule_field-date\', \'meta_query\' => array(array(\'key\' => \'ows_schedule_field-date\', \'value\' => \'2013-08-15\', \'type\' => \'date\', \'compare\' => \'>=\'))));
当我使用get_post_meta(285, \'ows_schedule_event-date\', true); (285是其中一个帖子)我得到2013-08-15.

1 个回复
SO网友:s_ha_dum

首先,你必须将日期存储在一个能正确进行数学排序的表格中。Unix时间戳可以做到这一点。唯一一种类似人类的日历格式是YYYY-MM-DD. 您的日期已向后保存。假设您存储为YYYY-MM-DD, 那么这应该可以:

$args = array(
  \'meta_query\' => array(
     array(
        \'meta_key\' => \'ows_schedule_field-date\', 
        \'meta_value\' => array($date_one,$date_two), // both dates YYYY-MM-DD
        \'compare\' => \'BETWEEN\'
     )
   )
)
$posts = new WP_Query($args);

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在