Excludeți Postarea Curentă din Bucla Postărilor Recente

18 sept. 2011, 00:13:16
Vizualizări: 51.9K
Voturi: 12

Care ar fi cea mai bună modalitate de a exclude postarea curentă pe care o vizualizez din această interogare pentru postări recente? Mulțumesc!

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

            foreach($myposts2 as $post) :
            ?>
0
Toate răspunsurile la întrebare 3
7
38

Acesta este argumentul post__not_in care ar trebui să funcționeze perfect pentru tine:

$args = array(
    'numberposts' => 5,
    'offset' => 0,
    'category' => 7,
    'post__not_in' => array( $post->ID )
);
$myposts2 = get_posts($args);
18 sept. 2011 04:08:25
Comentarii

@kaiser și Brian - Mulțumesc pentru răspuns, am introdus codul dar primesc o eroare de map_array ----

Warning: array_map() [function.array-map]: Argument #2 should be an array in /home/sitemain/public_html/wp-includes/query.php on line 1709

Warning: implode() [function.implode]: Invalid arguments passed in /home/sitemain/public_html/wp-includes/query.php on line 1709

Chad Chad
19 sept. 2011 20:38:33

Încearcă ultima editare. Completează argumentele într-un array.

Brian Fegter Brian Fegter
19 sept. 2011 21:01:03

Hm? De ce eu? @Brian Fegter a răspuns. :)

kaiser kaiser
19 sept. 2011 21:08:44

ha :) Sunt bine. Mereu bucuros să ajut.

Brian Fegter Brian Fegter
19 sept. 2011 21:22:43

Perfect, mulțumesc tuturor în special lui @BrianFegter !

Chad Chad
21 sept. 2011 06:53:55

În prezent folosesc asta <?php $catquery = new WP_Query( 'cat=1&posts_per_page=5' ); ?>. Cum implementez varianta ta în a mea? Mulțumesc!

Jornes Jornes
10 apr. 2020 19:19:35

@Jornes Poți folosi pur și simplu 'cat' => 1, 'posts_per_page' => 5 în exemplul de mai sus.

Brian Fegter Brian Fegter
14 apr. 2020 00:05:28
Arată celelalte 2 comentarii
0

Adaugă acest cod în array-ul tău $args

'post__not_in' => array( get_the_ID() )

În acest fel nu va trebui să te ocupi de obținerea ID-ului postului curent și vei evita potențialele erori legate de obținerea ID-ului. Funcția get_the_ID() obține automat ID-ul pentru tine, așa că nu trebuie să te mai ocupi tu de acest lucru.

3 dec. 2018 06:17:08
0

Adaugă codul de mai jos în fișierul functions.php al temei active

    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' );
28 mar. 2017 15:12:38