@efimenko_b

Как в Wordpress вывести все кроме последней добавленной записи?

Вопрос немного странноватый, но можно ли так сделать?
Вот я добавляю новую запись, все выводятся, а она нет, как так сделать?
А потом когда добавлю еще новую, то предыдущая уже тоже выведется, а эта нет.
Заранее спасибо)
  • Вопрос задан
  • 4447 просмотров
Пригласить эксперта
Ответы на вопрос 3
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
О, боги! Когда же вы научитесь читать документацию :)

function my_exclude_latest_post( $query ) {
    if ( $query->is_main_query() ) {
        $query->set( 'offset', '1' );
    }
}
add_action('pre_get_posts', 'my_exclude_latest_post');


Объяснение:
1. Создаем функцию, модифицирующую глобальный объект $query
2. Проверяем, чтобы это был основной запрос/луп
3. Устанавливаем значение аргумента offset, чтобы пропустить N постов (в нашем случае 1)
4. Хукаем функцию в pre_get_posts (выполняется непосредственно перед выборкой постов из базы)

Все это есть на странице документации класса WP_Query
В случае проблем с постраничной навигацией (а при бездумном использовании query_posts() и прочих костылей это вполне реально) - читаем тут.

И в очередной раз умоляю, перестаньте использовать query_posts() где попало! Особенно вместо основного лупа.
Ответ написан
htmlcssverstka
@htmlcssverstka
Верстка сайтов
Только что придумал, может есть варианты и по-лучше.
Считаете количество записей в базе:

$count_posts = wp_count_posts();
$count_posts = $count_posts - 1;


Выведем в обратном порядке все записи, кроме последней опубликованой:
query_posts( array(
   'posts_per_page'=> $count_posts,
   'orderby' => 'modified' // сортируем по дате изменения
   'order'=>DESC // выведем в обратном порядке
));
Ответ написан
@Div-Man
$arr = [
					'posts_per_page' => 4,
					'cat' => 37,
					'offset' => 1
				];
				
				$recent = new WP_Query($arr);
				
				while($recent->have_posts()) : $recent->the_post();?>
				
				<?php the_title(); ?><br><br>
				
				<?php endwhile; ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы