WP_QUERY显示从今天开始的下一个自定义帖子

时间:2012-05-25 作者:frankV

我有一个日历插件,它使用自定义帖子类型创建事件。有几个自定义字段允许我创建各种似乎无限的post查询。我目前关注的是包含“事件开始日期”的字段,标题为=evcal\\u start\\u date。

我需要做的是展示从今天开始的下一个即将到来的活动,这已经成为一个挑战。

当前WP\\U查询;

<?php
    $currentdate = date("m/d/Y",mktime(0,0,0,date("m"),date("d"),date("Y")));

    $my_query = new WP_Query(  array (\'showposts\' => 1,
    \'post_type\' => \'ajde_events\',
    \'meta_query\'=> array(
    array(
    \'key\' => \'evcal_start_date\',
    \'meta_compare\' => \'>\',
    \'value\' => $currentdate,
    \'type\' => \'DATE\',
    )),
    \'meta_key\' => \'evcal_start_date\',
    \'orderby\' => \'meta_value\',
    \'order\' => \'ASC\'
    )
    );

    while ($my_query->have_posts()) : $my_query->the_post();
    $title = get_the_title();
    $date = get_post_meta($post->ID, \'evcal_start_date\', true);

    endwhile; 
?>
<div class="featuredtitle"><?php echo $title; ?><br />
<?php echo $date; ?></div>
我已确保$currentdate的格式与evcal\\u start\\u date的格式匹配。存储为“2012年5月25日”。

我不能保证我的客户总是按顺序创建帖子,这就是为什么必须使用活动开始日期的自定义字段。

如果有任何帮助,我将不胜感激。祝阵亡将士纪念日周末愉快!

1 个回复
SO网友:mrwweb

要根据日期字段进行排序,需要将日期转换为UNIX日期时间格式。最好将日期存储在单独的自定义字段中。我从来没有设置过这个,但你会

钩住save\\u post,查找包含日期的自定义字段,将其转换为其他自定义字段中的日期时间(可能以下划线开头,以便在自定义字段界面中将其隐藏)还有一些自定义的元框插件,它们带有日期选择器,并且能够存储UNIX格式的日期。

要进行可读日期到UNIX的转换,您需要了解PHP的strtotime() function. 要转换回(如果您正在存储UNIX日期并希望以人类可读的格式打印它),您将使用date() function.

结束

相关推荐

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

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