web-dev-qa-db-fra.com

Afficher Post-it en haut mais ne plus apparaître dans la boucle?

En ce qui concerne wordpress.org - les posts collants sont affichés en haut mais ils réapparaissent également dans la boucle.

Pour la boucle principale de ma page d'accueil, je souhaite afficher les posts collants en haut, MAIS je ne veux pas que le message réapparaisse dans la boucle, sinon il semble redondant pour le visiteur.

Le problème avec le code ci-dessous est qu'ils suppriment le post collant du haut.
Je veux GARDER les messages collants en haut
mais ENLEVEZ/EXCLURE de la boucle. Est-ce possible?

CODE A: Cela supprime les post-collants du haut

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' );

CODE B: Ceci supprime les post-collants de la boucle AND en haut

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
leko

Les posts collants sont ajoutés au début de la partie paginée de la page d’accueil, alors essayez ceci:

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' ) );

} );

pour le supprimer des autres parties paginées de la page d'accueil.

1
birgire