Php 如何将某个类别中的最新文章排除在WordPress的首页上?

Php 如何将某个类别中的最新文章排除在WordPress的首页上?,php,wordpress,Php,Wordpress,我只想从头版中排除该类别中的最新帖子。应显示同一类别中的所有其他内容。我似乎无法理解这一点。这是我到目前为止得到的,但它从头版排除了整个类别 function exclude_category2($query) { if ( $query->is_home ) { $query->set('cat', '-1,-4,-36'); } return $query; } add_filter('pre_get_posts', 'exclude_category2'); 谢

我只想从头版中排除该类别中的最新帖子。应显示同一类别中的所有其他内容。我似乎无法理解这一点。这是我到目前为止得到的,但它从头版排除了整个类别

function exclude_category2($query) { 
if ( $query->is_home ) { 
$query->set('cat', '-1,-4,-36'); 
} 
return $query; 
} 
add_filter('pre_get_posts', 'exclude_category2'); 

谢谢你的帮助

你可以像gok建议的那样,使用像
template\u redirect
这样的钩子,使用
array\u shift
从全局$posts数组中删除顶部元素(有点,他并没有说怎么做)。在这种情况下,它会像这样

add_action( 'template_redirect', function() {
    global $posts;
    array_shift( $posts );
});
但我认为更优雅的方法是这样

add_action( 'loop_start', function( $args ) {
    $args[0]->next_post();
});
如果你把它放在functions.php中,在Wordpress循环的开始,它将自动转到下一篇文章,这意味着它将总是跳过第一篇文章

如果只想在某些页面上执行此操作,请在函数中使用相关的模板标记,如
is_home()
<代码>如果(is_home())$args[0]->next_post()


如果您不使用PHP版本>=5.3,则必须为函数命名,因为较低版本的PHP不支持匿名函数。

我建议您按日期查询订单结果,并从中删除最新帖子。(根据订购情况,移除第一个或最新项目)