我正在使用以下代码过滤分类页面上的帖子,以便只显示粘性帖子。
add_action( \'pre_get_posts\', function( \\WP_Query $q ) {
if( ! is_admin() && $q->is_category() && $q->is_main_query() ) {
$sticky_posts = get_option( \'sticky_posts\' );
if( ! empty( $sticky_posts ) )
$q->set( \'post__in\', (array) $sticky_posts );
}
} );
?>
问题是,如果没有粘性帖子,则会显示该类别的所有帖子。如果没有粘性帖子,我不想显示任何帖子。
最合适的回答,由SO网友:Ellimist 整理而成
只需将“post\\uu in”设置为空数组。
add_action( \'pre_get_posts\', function( \\WP_Query $q ) {
if( ! is_admin() && $q->is_category() && $q->is_main_query() ) {
$sticky_posts = get_option( \'sticky_posts\' );
//If there are sticky posts
if( ! empty( $sticky_posts ) ) {
$q->set( \'post__in\', (array) $sticky_posts );
}
//If not
else {
$q->set( \'post__in\', array(0) );
}
}
} );