Top.Mail.Ru
Ответы
Аватар пользователя
8лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Исключить текущую запись из выборки в php

Есть кусок кода:

<?php
global $post;
$args = array( 'posts_per_page' => 4, 'offset'=> 0, );
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>

из него необходимо исключить текущую запись, то есть ту запись, на одной странице с которой выполняется код.
Пытаюсь реализовать добавлением параметра exclude

<?php
global $post;
$args = array( 'posts_per_page' => 4, 'offset'=> 0, 'exclude'=>$post->ID, );
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>

Но не удаётся. Может быть, кто-то сможет острым глазом или опытным взглядом определить, где промах? Чего именно в коде не хватает для исключения текущей записи?

По дате
По рейтингу
Аватар пользователя
Новичок
8лет

А если так:

$args = array( 'posts_per_page' => 4, 'offset'=> 0, 'post__not_in'=>array($post->ID));

Аватар пользователя
Искусственный Интеллект
8лет

foreach( $myposts as $pst )
{
if ($pst->ID == $post->ID) continue;
setup_postdata($post);
}
Правда, надо тогда брать 5 постов на страницу и в foreach делать break, если дошли до 4.
А вообще, неплохо бы вывести в var_dump() весь $myposts и $post->ID