@vsrgv
2201

Как скрыть последний опубликованый пост?

На странице выводится анонс последнего опубликованного поста с миниатюрой, под ним выводится название 3 постов с миниатюрами по горизонтали. Как сделать что бы из этих 3х постов был исключен тот который выше.
8f58ed2741554257833b4fe31aab6cc4.png
<div class="description">
								<?php $query1 = new WP_Query (array(
									'category_name' => 'рецепты',
									'posts_per_page' => '1',
								));
								while($query1->have_posts()) : $query1->the_post(); ?>
								<a href="<?php the_permalink(); ?>"><h2 class="title"><?php the_title(); ?></h2></a>
								<div class="thumbnail"><?php the_post_thumbnail(); ?></div>
								<?php the_excerpt() ?>
								<a href="<?php the_permalink(); ?>">Читать далее</a>
								<?php endwhile; ?>
								<?php wp_reset_query(); ?>		
						<div class="recipes">
							<div class="row">				
								<a href="<?php echo get_page_link( 29 ); ?>"><h2><?php echo get_cat_name(28);?></h2></a>
								<?php $query2 = new WP_Query(array(
									'category_name'=>'рецепты',
									'posts_per_page'=> 3,
								));
								while($query2->have_posts()) : $query2->the_post(); ?>
								<div class="col-md-4">
									<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?><h2 class="title"><?php the_title(); ?></h2></a>
								</div>
								<?php endwhile; ?>
								<?php wp_reset_query(); ?>
							</div>
						</div>


сильно не пинайте, только учусь.
  • Вопрос задан
  • 160 просмотров
Решения вопроса 2
dimasmagadan
@dimasmagadan
Можно сделать как советует Илья в соседнем совете. Так вы будете делать меньше запросов.
единственное, что тогда нужно будет 'posts_per_page' => '4',

Но, если у вас эти два куска кода в шаблоне выводятся в разных местах, а вместе вы их тут показали только для наглядности, то может быть лучше сделать по другому.
Два варианта, как это сделать:
1 в втором query указать 'offset' => 1
2 или так же в втором query указать 'post__not_in' => array('id исключаемого поста')
Ответ написан
rpsv
@rpsv
делай либо хорошо, либо никак
В цикле пробегать только один объект WP_Query.

<?php 

$query = new WP_Query (array(
  'category_name' => 'рецепты',
  'posts_per_page' => '4',
));
$isFirstRow = true;

while($query->have_posts()):
    $query->the_post();
    if ($isFirstRow):
        $isFirstRow = false;
?>

шаблон большого поста

<?php
    else:
?>

шаблон маленького поста

<?php
    endif;
endwhile;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vsrgv Автор вопроса
2201
а возможно как то эти циклы запихнуть в функцию?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы