如果“已发布”>如何通过自定义字段订购帖子? “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加载然后擦除它们并将所有内容留空!谢谢你的帮助
答案 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);