web-dev-qa-db-fra.com

Exclure le message en cours des messages récents

quel serait le meilleur moyen d'exclure le message en cours que je suis en train de consulter de cette requête en messages récents. Je vous remercie!

<?php
            global $post;
            if (in_category('top-lists')) {
                $myposts2 = get_posts('numberposts=5&offset=0&category=7');
            }
            else if (in_category('playlists') || in_category('playlistall')) {
                $myposts2 = get_posts('numberposts=5&offset=0&category=6,37');
            }
            else if (in_category('news') || in_category('news')) {
                    $myposts2 = get_posts('numberposts=5&offset=0&category=95');
            }
            else {
                $myposts2 = get_posts('numberposts=5&offset=0&category=-6,-7,-37,-95,-177');
            }

            foreach($myposts2 as $post) :
            ?>
6
Chad

Cet argument post__not_in devrait vous convenir:

$args = array(
    'numberposts' => 5,
    'offset' => 0,
    'category' => 7,
    'post__not_in' => array( $post->ID )
);
$myposts2 = get_posts($args);
20
Brian Fegter

Ajoutez ceci à vos $ args

'post__not_in' => array( get_the_ID() )

De cette façon, vous n'aurez plus à obtenir l'ID de l'article actuel et vous éviterez potentiellement des erreurs d'obtention de votre ID. La fonction get_the_ID () obtient simplement l'ID pour vous afin que vous n'ayez rien à faire ou à faire.

1
Mav2287

Ajouter le code ci-dessous dans le fichier functions.php du thème actif

    function be_exclude_current_post( $args ) {
        if( is_singular() && !isset( $args['post__in'] ) )
            $args['post__not_in'] = array( get_the_ID() );
        return $args;
    }
    add_filter( 'widget_posts_args', 'be_exclude_current_post' );
1
Vijay Lathiya