Первый пост другой макет

Мне нужно иметь разный макет для первого поста на каждой странице, но я не знаю, с чего начать. Код следующий:

<?php get_header(); ?>
<div class="row">
<section class="small-12 columns grid-style">
<?php $i = 0; $counter = range(0, 200, 3); ?>

<?php
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array('offset'=> 0, 'paged'=>$paged);
$all_posts = new WP_Query($args);
if (have_posts()) :  while($all_posts->have_posts()) : $all_posts->the_post();?>

<?php if ($i % 3 == 0) { echo '<div class="row journal" data-equal=".post">'; } ?

<!--Post -->
<article class="grid-style post" id="post-<?php the_ID(); ?>"<div class="post-img">
<?php get_template_part( 'inc/postformats/grid-style' ); ?>
</div>
<div class="post-box">
<div class="post-title">
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php echo ShortenText(get_the_title(), 50); ?></a></h2>
</div>
<aside class="post_categories">
<?php the_category(', '); ?>
</aside>
<div class="post-content">
<?php echo ShortenText(get_the_excerpt(), 170); ?>
</div>
</div>
</article>

<!--/Post -->

<?php if (in_array($i + 1, $counter)){ echo '</div>'; }   ?>

<?php $i++; endwhile; ?>

<div class="small-12 columns">
<?php theme_pagination($all_posts->max_num_pages, 1, true); ?>
</div>
<?php else : ?>
<p><?php _e( 'Please add posts from your WordPress admin page.', THB_THEME_NAME ); ?></p>
<?php endif; ?>
</section>
</div>
<?php get_footer(); ?>

Мне нужно использовать другой размер изображения, поэтому мне нужно вывести все внутри < ! — — Post — -> снова только для первого поста.

0

Решение

Вы пытаетесь включить div.row.journal в первый пост?
Если это так, попробуйте сделать это:

замещать <?php if ($i % 3 == 0) { echo '<div class="row journal" data-equal=".post">'; } ? следующим: (Это будет отражено только на первой странице, для первого сообщения)

<?php
if ($all_posts->current_post == 0 && !is_paged()) {
echo '<div class="row journal" data-equal=".post">';
}
?>

Делать то же самое для закрытия div, заменив <?php if (in_array($i + 1, $counter)){ echo '</div>'; } ?> от :

<?php
if ($all_posts->current_post == 0 && !is_paged()) {
echo '</div>';
}
?>
0

Другие решения

Вы должны определить счетчик и спросить, если … еще … внутри цикла

$post_counter = 1;
while (start_loop):

if ($post_counter == 1){
echo "<div id='1'></div>";
else:
echo "<div id='2'></div>";

$post_counter += 1;

//end loop

Я думаю, что это должно помочь вам.

0

Это код, который у меня есть сейчас, я смог вывести HTML для первого поста и другой для ВСЕХ постов, но я получаю 2 первых поста. Один с использованием первого макета, а второй с использованием второго макета

<?php
/*
Template Name: Blog - Grid Style
*/
?>
<?php get_header(); ?>
<div class="row">
<section class="small-12 columns grid-style">
<?php $i = 0; $counter = range(0, 200, 3); ?>

<?php
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array('offset'=> 0, 'paged'=>$paged);
$all_posts = new WP_Query($args);
$post_counter = 0;
if (have_posts()) :  while($all_posts->have_posts()) : $all_posts->the_post();   $post_counter++;?>

<?php if ($i % 3 == 0) { echo '<div class="row journal" data-equal=".post">'; } ?><?php if ($post_counter == 1){ ?>

<!--Layout Post 1-->
<div class="row">
<article class="grid-style post small-9 small-centered column" id="post-<?php the_ID(); ?>">

<div class="post-img">
<?php get_template_part( 'inc/postformats/grid-style' ); ?>
</div>

<div class="post-box">
<div class="post-title">
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php echo ShortenText(get_the_title(), 50); ?></a>1</h2>
</div>
<aside class="post_categories">
<?php the_category(', '); ?>
</aside>
<div class="post-content">
<?php echo ShortenText(get_the_excerpt(), 170); ?>
</div>
</div></article>
</div>
<!--/Layout Post 1-->

<?php } ?><!--Other Posts -->
<div class="row">
<article class="grid-style post small-9 small-centered column" id="post-<?php the_ID(); ?>">

<div class="post-img">
<?php get_template_part( 'inc/postformats/grid-style' ); ?>
</div>

<div class="post-box">
<div class="post-title">
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php echo ShortenText(get_the_title(), 50); ?></a></h2>
</div>
<aside class="post_categories">
<?php the_category(', '); ?>
</aside>
<div class="post-content">
<?php echo ShortenText(get_the_excerpt(), 170); ?>
</div>
</div></article>
</div>
<!--/Other Posts --><?php if (in_array($i + 1, $counter)){ echo '</div>'; }   ?><?php $i++; endwhile; ?>

<div class="small-12 columns">
<?php theme_pagination($all_posts->max_num_pages, 1, true); ?>
</div>
<?php else : ?>
<p><?php _e( 'Please add posts from your WordPress admin page.', THB_THEME_NAME ); ?></p>
<?php endif; ?>
</section>
</div>
<?php get_footer(); ?>
0