按自定义字段日期列出自定义帖子类型

时间:2012-11-28 17:20:28

标签: wordpress date sorting custom-post-type custom-fields

我正在使用Wordpress和WP-Types插件,需要按自定义字段日期对CPT进行排序。

这项工作很好:

$args = array(
    'post_type' => 'parties',
    'paged' => $paged,
    'meta_key' => 'wpcf-parties_date',
    'orderby' => 'meta_value',
    'order' => 'DESC',
);

订单工作完美。 在数据库中,字段日期'wpcf-parties_date'的值以这种方式存储,例如:1349481600。

我有两个模板,我需要显示过去和即将发布的帖子。我的问题是如何只显示有关当前日期的未来或过去的帖子?

我试试这个没有运气。

$args = array(
    'post_type' => 'parties',
    'paged' => $paged,
    'meta_key' => 'wpcf-parties_date',
    'meta_value' => date('d.m.Y H:i:s'),
    'meta_compare' => '>',
    'orderby' => 'meta_value',
    'order' => 'ASC'
);

我使用WP_Query作为循环。

提前致谢!!

1 个答案:

答案 0 :(得分:1)

您可以尝试meta_query检查< and >并同时使用meta_value_num,因为您的自定义字段值是数字(1349481600)。

$current_date=strtotime(date('d.m.Y H:i:s'));
$args = array(
    'post_type' => 'parties',
    'paged' => $paged,
    'meta_key' => 'wpcf-parties_date',
    'orderby' => 'meta_value_num',
    'order' => 'ASC',
    'meta_query' => array(
        array(
            'key' => 'wpcf-parties_date',
            'value' => $current_date,
            'compare' => '>'
        ),
        array(
            'key' => 'wpcf-parties_date',
            'value' => $current_date,
            'compare' => '<'
        )
    )
);

Read the documentation for more