我查看了另一篇文章,但我什么也没找到,我从3天开始就开始了:
我想按顺序ASC
显示3'evenements'
但2018年总是在2017年之前
$auj = date('Ymd');
$queryEvent = new WP_Query(
array(
'category_name' => 'evenements',
'posts_per_page' => 3,
'meta_key' => 'date_de_fin',
'orberby' => 'meta_key',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'date_de_fin',
'value' => $auj,
'compare' => '>=',
),
)
)
);
?>
有人有个主意吗?
答案 0 :(得分:0)
我已更新您的代码。请尝试更新的查询。
<?php $auj = date('Ymd');
$queryEvent = new WP_Query(
array(
'category_name' => 'evenements',
'posts_per_page' => 3,
'meta_key' => 'date_de_fin',
'orberby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'date_de_fin',
'value' => $auj,
'compare' => '>=',
'type' => 'DATE'
),
)
));
?>
我已经取代&#39; orderby&#39;价值与价值添加&#39;类型&#39; meta_query中的参数。
希望,这可能对您有所帮助。
答案 1 :(得分:0)
由于您的日期格式不在
Y-m-d
中,因此您需要定义自己的日期格式 做空的逻辑
function wh_posts_orderby($orderby, $query) {
//Only for custom orderby key
if ($query->get('orderby') != 'yyyymmdd_date_format')
return $orderby;
if (!( $order = $query->get('order') ))
$order = 'ASC';
global $wpdb;
$fieldName = $wpdb->postmeta . '.meta_value';
return "STR_TO_DATE(" . $fieldName . ", '%Y%m%d') " . $order;
}
add_filter('posts_orderby', 'wh_posts_orderby', 10, 2);
将上面的^^代码添加到您的活动主题functions.php
文件。
对帖子进行排序
$auj = date('Ymd');
$args = [
'category_name' => 'evenements',
'posts_per_page' => 3,
'meta_key' => 'date_de_fin',
'orberby' => 'yyyymmdd_date_format', //check this line
'order' => 'ASC',
'meta_query' => [
'relation' => 'AND', //added this
[
'key' => 'date_de_fin',
'value' => $auj,
'compare' => '>=',
'type' => 'DATE'
],
]
];
$queryEvent = new WP_Query($args);
if ($queryEvent->have_posts()) :
/* Start the Loop */
while ($queryEvent->have_posts()) : $queryEvent->the_post();
//you post
endwhile;
endif;
希望这有帮助!
答案 2 :(得分:0)
我通过SQL查询解决问题:
User.findOneAndUpdate({
'twitter.id_str': 123
}, {
name: 'Full Name',
email: 'mail@gmail.com',
username: 'pseudo',
provider: 'twitter',
twitter: { id_str: 123 }
}, {
upsert: true
}, function (err, user) {
if (err) {
return done(err);
} else {
console.log(user);
}
});