根据分类存档页面中的元键对帖子进行排序
sort posts based on meta key in a taxonomy archive page
我正在使用以下代码根据我的元键 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
,但即使在调整参数后,上面的代码也无法正常工作。你能看看吗
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' );
这对我有用,可以根据自定义字段匹配键对帖子进行排序
我正在使用以下代码根据我的元键 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
,但即使在调整参数后,上面的代码也无法正常工作。你能看看吗
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' );
这对我有用,可以根据自定义字段匹配键对帖子进行排序