2017-04-02 8 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'); 

これは、カスタムフィールドメイトキー

に基づいて記事をソートするために私のために働いた見ることができます
関連する問題