Php Wordpress-比较日期-10月大于11月(Y-m-d)
我正在开发一个事件预订,所有东西都可以正确地使用这个查询,也就是说,它根据数量级正确地放置帖子Php Wordpress-比较日期-10月大于11月(Y-m-d),php,wordpress,date,if-statement,Php,Wordpress,Date,If Statement,我正在开发一个事件预订,所有东西都可以正确地使用这个查询,也就是说,它根据数量级正确地放置帖子 <?php $v_args = array( 'post_type' => get_option('customer_postquery'), 'posts_per_page' => -1, 'orderby' => 'meta_value', 'order' => 'ASC', 'meta_query' => arra
<?php
$v_args = array(
'post_type' => get_option('customer_postquery'),
'posts_per_page' => -1,
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
array (
'key' => 'metakey_AMC_data',
),
),
'tax_query' => array(
array(
'taxonomy' => 'categoria',
'field' => 'slug',
'terms' => $queried_object,
)
)
);
$vehicleSearchQuery = new WP_Query( $v_args );
if( $vehicleSearchQuery->have_posts() ) :?>
<?php while( $vehicleSearchQuery->have_posts() ) : $vehicleSearchQuery->the_post();
?>
<?php
$var = get_post_meta(get_the_ID(),'metakey_AMC_data',true);
$data_dell_evento = date("Y-m-d", strtotime( $var ));
/*PRENDERE LA DATA CORRENTE IN FORMATO Y-m-d DIRETTAMENTE DA MYSQL*/
$data_di_oggi = date( 'Y-m-d', current_time( 'timestamp', 0 ) );
if ($data_dell_evento > $data_di_oggi ): ?>
<div style="padding-top: 25px;" class="col-md-4"><!-- Card -->
<?php include('content/home_page/card.php'); ?>
</div>
<?php endif; ?>
<?php
endwhile;
else :
?>
<?php
endif;
wp_reset_postdata();
?>
您正在传递一个
'orderby'=>'meta\u value'
,而没有传递meta\u键
引自:
meta_value’–请注意,查询中还必须存在“meta_key=keyname”。还请注意,排序将按字母顺序进行,这对于字符串(即单词)来说是很好的,但是对于数字(例如1、3、34、4、56、6等,而不是您自然期望的1、3、4、6、34、56等)来说可能是意外的。使用“meta_value_num”代替数值。如果要将元值强制转换为特定类型,还可以指定“meta_type”。可能的值为“数值”、“二进制”、“字符”、“日期”、“日期时间”、“十进制”
因此,您应该将args更改为以下内容:
$v_args = array(
'post_type' => get_option('customer_postquery'),
'posts_per_page' => -1,
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_key' => 'metakey_AMC_data',
'tax_query' => array(
array(
'taxonomy' => 'categoria',
'field' => 'slug',
'terms' => $queried_object,
)
)
);
基本上,我将meta_查询
更改为只在args中使用meta_键
更新
它在您的案例中不起作用的原因是,您的日期在数据库中存储为d-m-Y
格式,因此,它是按天排序的,而不是通常的年、月、日
只需更新您在数据库中保存日期的格式。我复制了您的代码并粘贴到了我的代码中,但都是一样的,为什么?@der您确定这是正确的元键吗?还有,这些值是如何存储在数据库中的?当然,meta键是正确的,它们是通过我作为插件创建的metabox中的一个表单保存的,格式为(d-m-Y),这就是为什么我随后转换了code@der那这就是问题所在。因为在数据库中,01
比其他日期小。因此,订购是以第一天为基础的。您可以尝试添加一个“meta\u type”=>“meta\u value\u datetime”
。如果我实现了这一点,所有的日期都是混合的
$v_args = array(
'post_type' => get_option('customer_postquery'),
'posts_per_page' => -1,
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_key' => 'metakey_AMC_data',
'tax_query' => array(
array(
'taxonomy' => 'categoria',
'field' => 'slug',
'terms' => $queried_object,
)
)
);