Wordpress自定义字段日期,显示自定义日期的帖子>电流按升序排列

时间:2012-01-13 20:03:33

标签: wordpress meta-tags

如果“已发布”>如何通过自定义字段订购帖子? “currentdate”但是按照升序排列。基本上只显示日期从今天开始但按升序排列的帖子。目前我有

<?php 
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('showposts=10&post_type=movies&meta_key=releasedate_value&orderby=releasedate_value&order=ASC');
if (have_posts()) : while (have_posts()) : the_post(); 
$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));
?>


<?php if ($releasedate >  $currentdate) {?>

“我的内容/发布在这里”

<?php } ?>
<?php endwhile; ?>
<?php endif; ?>

现在一切正常,除非它的ASC而不是DSC,没有帖子会显示,因为wordpress首先获得帖子并且删除不在当前日期之前且只有10个帖子的帖子,因此如果10 post有发布在今天之前的日期,wordpress加载然后擦除它们并将所有内容留空!谢谢你的帮助

2 个答案:

答案 0 :(得分:4)

我将日期标准放入查询本身。假设你有WordPress版本3.1或更高版本,你可以使用meta_query参数。类似的东西:

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

$wp_query = new WP_Query(  array ('showposts' => 10,
                'post_type' => 'movies',
                'meta_query'=> array(
                    array(
                      'key' => 'releasedate_value',
                      'compare' => '>',
                      'value' => $currentdate,
                      'type' => 'DATE',
                    )),
                'meta_key' => 'releasedate_value',
                'orderby' => 'meta_value',
                'order' => 'ASC'
    )
);

应该有用。

答案 1 :(得分:0)

这也适用于我:

$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));

                                    $args =  array(
                                        'post_type' => 'event',
                                        'meta_key'  => 'date_field',
                                        'posts_per_page' => 5,
                                        'orderby' => 'meta_value',
                                        'order' => 'ASC',
                                        'meta_query' => array(
                                            array(
                                                'key' => 'date_field',
                                                'value' => $currentdate,
                                                'compare' => '>=',
                                                'type' => 'DATE'
                                            ),
                                        ),
                                    );
                                    $my_query = null;
                                    $my_query = new WP_Query($args);