web-dev-qa-db-de.com

Aktuellen Beitrag von der Schleife der letzten Beiträge ausschließen

was wäre die beste Möglichkeit, um den aktuellen Beitrag, den ich gerade ansehe, von der Abfrage der letzten Beiträge auszuschließen? Danke dir!

<?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

Dies sollte der post__not_in arg für Sie funktionieren:

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

Fügen Sie dies Ihren $ args hinzu

'post__not_in' => array( get_the_ID() )

Auf diese Weise müssen Sie sich nicht mit dem Abrufen der aktuellen Beitrags-ID befassen und vermeiden möglicherweise Fehler beim Abrufen Ihrer ID. Die Funktion get_the_ID () ermittelt nur die ID für Sie, damit Sie sich nicht mit irgendetwas befassen müssen.

1
Mav2287

Füge den folgenden Code in die Datei "functions.php" des aktiven Themas ein

    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