Вывод 3х последних записей с контролем текущей (открытой для чтения)

Последнее обновление: 20 июля, 2021

wordpress

Логика проста — взять не 3, а 4 записи, и вывести только 3, удалив из них ту которая сейчас открыта для чтения (или последнюю, если среди 4х открытой нет). Подсчет кол-ва записей делаем счетчиком. Сравнение с открытой записью делаем (в этом примере) по ID записи.

Немного слов о коде ниже:

  • $n — переменная, в которой хранится инфо о том, сколько уже выведено записей
  • в строчке 7 мы во-первых сравниваем запись ID текущего поста на странице и количество постов на странице
<?php
    $posts = get_posts ("category=7&orderby=date&numberposts=4");
    $n = 0;
    echo '<ul class="">';
        if ($posts) : foreach ($posts as $post) : setup_postdata ($post);
            $temp_post_id = get_the_ID();
            if ( ( $temp_post_id != $post_id ) && ( $n < 3 ) ) {
                echo ' <li class=""><a href="'.get_the_permalink().'"><img src="'.get_the_post_thumbnail_url().'">'.get_the_title().'</a></li>';
                $n++;
            }
        endforeach;
    wp_reset_postdata();
    echo '</ul>';
    endif;
?>

Выше надо сграбить номер текущей записи:

<?php echo $post_id = get_the_ID(); ?>