按數字欄位排序帖子被視為字串。我有一個自定義數字欄位(由 ACF 提供)。并將我的幾個帖子設定為 99 98 97 以顯示在首頁的第一位。但是 10 之后的順序是錯誤的。搜索后我需要使用 orderby meta_value_num 而不是 meta_value。我在陣列中有多個元值。如何申請?
顯示為:99 98 97 …… 92 91 90 9 89 88 ……。80 8 79 78…
其他示例:9 82 6 4 16 15 14
期望:82 16 15 14 9 6 4
我怎樣才能解決這個問題?
if( isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'post' ) {
$query->set('meta_query', array(
'myordernumber' => array(
'key' => 'myordernumber',
)
));
$query->set('orderby',array(
'myordernumber' => 'DESC',
'date' => 'DESC'
));
}
// return
return $query;
uj5u.com熱心網友回復:
您應該使用meta_value_num而不是myordernumber
看看這個: https ://wordpress.stackexchange.com/questions/30241/wp-query-order-results-by-meta-value https://developer.wordpress.org/reference/classes/wp_query/#order-按引數排序
認為應該是:
$args = array(
'post_type'=>'post',
'meta_key' => 'myordernumber',
'orderby' => array(
'meta_value_num' => 'DESC',
'date' => 'DESC')
);
$query = new WP_Query( $args );
替代。
if( isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'post' ) {
$query->set('meta_key', 'myordernumber');
$query->set('orderby', array('meta_value_num' => 'DESC',
'date' => 'DESC') );
}
return $query;
uj5u.com熱心網友回復:
if( isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'post' ) {
$query->set('meta_query', array('myordernumber' => array(
'key' => 'myordernumber',)));
$query->set('orderby', array('meta_value_num' => 'DESC',
'date' => 'DESC') );
}
return $query;
相關:https ://make.wordpress.org/core/2014/08/29/a-more-powerful-order-by-in-wordpress-4-0/
https://developer.wordpress.org/reference/hooks/pre_get_posts/
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/420979.html
標籤:
上一篇:全屏背景圖片-Wordpress
