[英]Order by custom field value not working for acf date field
我有具有自定義字段event_date的自定義帖子類型事件。 此字段的日期格式設置為Ymd。
我正在嘗試按event_date的順序獲取帖子
這是按該順序拉出帖子的代碼
$today = date('Ymd');
$args = array (
'post_type' => array( 'event' ),
'posts_per_page' => '-1',
'order' => 'ASC',
'orderby' =>'meta_value', // also tried having meta_value_num but that didn't worked as well
'meta_key' =>'event_date',
'meta_query' => array(
array(
'key' => 'event_date',
'compare' => '>=',
'value' => $today,
)
),
'suppress_filters' => true
);
/*
global $wp_filter;
var_dump( $wp_filter['posts_orderby'] );die;
This returns NULL as well
*/
$query = new WP_Query( $args );
echo '<pre>';
var_dump($query->request);die;
但是$ query-> request比我提供的查詢顯示ORDER BY為post_date。 這是請求的轉儲
string(681) "SELECT wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) WHERE 1=1 AND (
wp_posts.ID NOT IN (
SELECT object_id
FROM wp_term_relationships
WHERE term_taxonomy_id IN (11)
)
) AND (
wp_postmeta.meta_key = 'event_date'
AND
(
( mt1.meta_key = 'event_date' AND mt1.meta_value >= '20171113' )
)
) AND wp_posts.post_type = 'event' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date ASC "
無法在event_date之前訂購。 我究竟做錯了什么?? 甚至嘗試過
remove_all_filters('posts_orderby');
在wp_query之前仍然是相同的結果。
最后:謝謝大家的友好回答,最終通過在我的查詢中將order_by更改為orderby來解決了。 感謝@Prasanna Venkatesh讓我簽入phpmyadmin。 運行phpmyadmin中的代碼並進行修復。 PS:sql查詢是正確的,除了order_by。
您在元查詢中缺少'type' => 'DATE'
。
$args = array (
'post_type' => array( 'event' ),
'posts_per_page' => '-1',
'order' => 'ASC',
'orderby' =>'meta_value', // also tried having meta_value_num but that didn't worked as well
'meta_key' =>'event_date',
'meta_query' => array(
array(
'key' => 'event_date',
'compare' => '>=',
'value' => $today,
'type' => 'DATE'
)
),
'suppress_filters' => true
);
在訂單類型中使用“ meta_value_num”,然后
$args = array (
'post_type' => array( 'event' ),
'posts_per_page' => -1,
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'event_date',
'compare' => '>=',
'value' => $today,
'type' => 'NUMERIC'
)
),
'suppress_filters' => true
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.