按日期和自定义元发布订单

时间:2014-01-07 20:39:49

标签: wordpress meta

我有2个自定义元一个用于我的活动的开始日期,一个用于我的活动的结束日期,我需要根据开始日期订购我的活动,并在结束日期结束时删除它们。

元:

开始日期:date_de_levenvement 结束日期:date_de_fin

这是我的循环:

<?php query_posts( 'post_type=agenda&meta_key=date_de_fin&meta_compare=>=&meta_value=' . $todaysDate . '&orderby=meta_value&order=ASC'); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
$date = get_field('date_de_fin');
$newDate = date("d/m/Y", strtotime($date)); ?>

只需要更改查询但我不知道如何使用带有元值的2个参数。 &orderby=meta_value必须与&orderby="date_de_levenement"

类似

1 个答案:

答案 0 :(得分:0)

我实际上会使用更健壮的WP_Query对象来完成此任务。更具体地说,您可以看到名为Custom Field Parameters的部分,并查看标题为多个自定义字段处理的示例。您可以像这样创建参数数组:

$args = array(
        'post_type' => 'agenda',
        'meta_key' => 'date_de_levenvement',
        'meta_query' => array(
            array(
                'key' => 'date_de_fin',
                'value' => $todaysDate,
                'compare' => '>='
                )
            ),
        'orderby' => 'meta_value_num',
        'order' => 'ASC'
        );

$your_custom_query = new WP_Query($args);

// The Loop
if ( $your_custom_query->have_posts() ) {
    while ( $your_custom_query->have_posts() ) {
        $your_custom_query->the_post();
        // your code goes here
    }
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

<强>解释

meta_query元素是数组数组,这意味着您甚至可以根据需要过滤多个元(自定义字段)属性。请注意,我包含了meta_key元素。这将允许您按开始日期排序。而key元素的meta_query元素将过滤您的结束日期帖子。 (在这种情况下,只有当agenda大于或等于“今天”时,才会包含名为date_de_fin的帖子类型。

<强> [编辑]

请注意,“今天”日期应格式化为SQL格式,如下所示:

<?php $todaysDate = date('Y-m-d'); ?>

希望这会有所帮助。玩得开心!