


Исключить текущую запись из выборки в 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); ?>
Но не удаётся. Может быть, кто-то сможет острым глазом или опытным взглядом определить, где промах? Чего именно в коде не хватает для исключения текущей записи?
А если так:
$args = array( 'posts_per_page' => 4, 'offset'=> 0, 'post__not_in'=>array($post->ID));
foreach( $myposts as $pst )
{
if ($pst->ID == $post->ID) continue;
setup_postdata($post);
}
Правда, надо тогда брать 5 постов на страницу и в foreach делать break, если дошли до 4.
А вообще, неплохо бы вывести в var_dump() весь $myposts и $post->ID