在顶部显示粘滞帖子,但不在循环中再次显示?

时间:2015-07-16 作者:stadisco

关于wordpress。组织-粘性帖子显示在顶部,但它们也会再次出现在循环中。

对于我主页上的主循环,我希望在顶部显示粘性帖子,但我不希望帖子再次出现在循环中,否则对访问者来说是多余的。

下面代码的问题是,他们从顶部移除了粘性贴子
我想将粘性贴子保留在顶部,但将其从循环中删除/排除。这可能吗?

代码A:这将从顶部删除粘性帖子

function mango($query){
if ( $query->is_home() && $query->is_main_query() && !is_admin() ) {
    $query->set( \'ignore_sticky_posts\', true );
    }
}
add_action( \'pre_get_posts\', \'mango\' );
代码B:这将从顶部和循环中删除粘性帖子

function mango($query){
if ( $query->is_home() && $query->is_main_query() && !is_admin() ) {
    $query->set( \'post__not_in\', get_option( \'sticky_posts\' ) );
    }
}
add_action( \'pre_get_posts\', \'mango\' );

1 个回复
最合适的回答,由SO网友:birgire 整理而成

粘性贴子在主页的第一个分页部分预先添加,因此请尝试以下操作:

add_action( \'pre_get_posts\', function( $q ) 
{
    if ( $q->is_home() && $q->is_main_query() && $q->get( \'paged\' ) > 1 )
        $q->set( \'post__not_in\', get_option( \'sticky_posts\' ) );

} );
将其从主页的其他分页部分中删除。

结束

相关推荐

WP_QUERY LOOP ELSE语句未执行

我有两个WP_query 在我的frontpage中循环。php文件:<div id=\"aanbod\"> <div class=\"container-fluid section-name-cont\"> <div class=\"container\"> <div class=\"row\"> <div class=\"col-xs-12 section-name\"