看起来问题是由我安装的“Post Types Order”插件引起的
是的,我相信是这样,因为您的代码实际上对我有用,但在我安装并激活plugin, 您的代码不再按预期工作。
我已将其设置为非顺序news
post类型,但出于某种原因,它仍将其排序添加到主查询中。
我不知道您是如何设置的,但请尝试以下选项之一:
设置ignore_custom_sort
(这是一种习俗WP_Query
参数)至true
像这样:
switch ( $order_by ) {
case \'news-date\':
$query->set( \'meta_key\', \'date\' );
$query->set( \'orderby\', \'meta_value_num\' );
$query->set( \'ignore_custom_sort\', true );
break;
}
或者您也可以使用
pto/posts_orderby/ignore
钩子以禁用插件的排序:
add_filter( \'pto/posts_orderby/ignore\', function( $ignore, $order_by, $query ){
if ( \'lesson\' === $query->get( \'post_type\' ) ) {
$ignore = true;
}
return $ignore;
}, 10, 3 );