基于分类归档页面中的元键排序帖子

问题描述:

我正在使用下面的代码根据我的元键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参数后,上面的代码不会为这项工作。你可以看看

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'); 

这个工作对我来说,基于自定义字段队友关键

职位排序