基于分类归档页面中的元键排序帖子
问题描述:
我正在使用下面的代码根据我的元键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');
这个工作对我来说,基于自定义字段队友关键
职位排序