我有一个名为“performance”的自定义帖子类型。我有一个自定义的帖子查询,它根据自定义字段值(订单日期)对帖子进行排序。现在我想排除订单日期在过去的帖子。我想我可以使用相同的“订单日期”值与今天的日期进行比较,以确定是否应该显示帖子,但我找不到一个适用于订单的示例。我所做的一切都破坏了秩序。
这似乎奏效了!
<?php
$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
$today = date(\'Y-m-d\');
query_posts(array(
\'post_type\' => \'performance\',
\'posts_per_page\' => 5,
\'caller_get_posts\' => 5,
\'paged\' => $paged,
\'meta_key\' => \'order-date\',
\'orderby\' => \'meta_value\',
\'order\' => \'ASC\',
\'meta_query\' => array(
array(
\'key\' => \'order-date\',
\'meta-value\' => $value,
\'value\' => $today,
\'compare\' => \'>=\',
\'type\' => \'CHAR\'
)
)
));
if (have_posts()) :
while (have_posts()) : the_post();
?>
请注意,我定义了“$today”,并将其添加到meta\\u数组中,以便与meta值进行比较。过去的性能项目从列表中消失了,一切看起来都应该如此。感谢布雷迪让我走上正轨。
最合适的回答,由SO网友:Scott 整理而成
你需要利用meta_query
http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
<?php
$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
query_posts(array(
\'post_type\' => \'performance\',
\'posts_per_page\' => 5,
\'caller_get_posts\' => 5,
\'paged\' => $paged,
\'meta_key\' => \'order-date\',
\'orderby\' => \'meta_value\',
\'order\' => \'ASC\',
\'meta_query\' => array(
array(
\'key\' => \'order-date\',
\'value\' => $value,
\'compare\' => \'>=\',
\'type\' => \'CHAR\'
)
)
));
if (have_posts()) :
while (have_posts()) : the_post();
?>