2017-04-02 48 views
0

我正在使用下面的代碼根據我的元鍵sub_seminars_0_start_date排序帖子。代碼工作正常,因爲它從投資組合post_type獲得所有帖子,然後根據我的元密鑰對它們進行排序。但是,當我通過分類查詢時,它不顯示任何內容,包含頁眉和頁腳的空白頁面。基於分類歸檔頁面中的元鍵排序帖子

<?php 
       $args = array(
       'post_type' => 'dt_portfolio', 
       'post_status' => 'publish', 
       'tax_query' => array(
      array(
      'taxonomy' => 'dt_portfolio_category', 
      'field' => 'slug', 
      'terms' => '', 
     ), 
    ), 
       'meta_key' => 'sub_seminars_0_start_date', 
       'orderby' => 'meta_value_num', 
       'order'  => 'ASC', 
      ); 

      $query = new WP_Query($args); ?> 

如何對我的分類歸檔頁面中的帖子進行排序?

function change_order_for_events($query) { 
    //only show future events and events in the last 24hours 
    $yesterday = date('Ymd'); 

    if ($query->is_main_query() && (is_tax('dt_portfolio_category') || is_post_type_archive('dt_portfolio'))) { 
     $query->set('meta_key', 'sub_seminars_0_start_date'); 
     $query->set('orderby', 'meta_value_num'); 
     $query->set('order', 'ASC'); 

     //Get events after 24 hours ago 
     $query->set('meta_value', $yesterday); 
     $query->set('meta_compare', '>'); 

     //Get events before now 
     //$query->set('meta_value', current_time('timestamp')); 
     //$query->set('meta_compare', '<'); 
    } 

} 

add_action('pre_get_posts', 'change_order_for_events'); 

這個代碼function.php將基於特定元鍵值自己的帖子進行排序。

sub_seminars_0_start_date 

我創建了一個自定義分類Seminar_Venues但即使adjustin參數後,上面的代碼不會爲這項工作。你可以看看

回答

1
function pre_get_posts_hook($wp_query) { 

    if(is_admin()) { 

     return $wp_query; 

    } 

    if ($wp_query->is_main_query() && (is_category() || is_archive())) 
    { 
     $wp_query->set('orderby', 'meta_value'); 
     $wp_query->set('meta_key', 'sub_seminars_0_start_date'); 
     $wp_query->set('order', 'ASC'); 
     return $wp_query; 
    } 
} 

add_filter('pre_get_posts', 'pre_get_posts_hook'); 

這個工作對我來說,基於自定義字段隊友關鍵

職位排序
相關問題