Wordpress первый пост в другом контейнере - PullRequest
0 голосов
/ 27 апреля 2020

Я новичок в Wordpress и у меня проблема с сообщениями l oop. Мне нужно сначала сообщение в другом контейнере, чем остальные. Я хочу сделать шаблон так:

<div class="container-fluid">
    <div class="row">
          first post
    </div>
</div>
<div class="container">
    <div class="row">
          <div class="col-12">
                posts
          </div>
    </div>
</div>

Я сделал что-то вроде этого, но он не работает хорошо:

<?php if (have_posts()) : $postCounter = 0 ?>
        <?php while (have_posts()) : $postCounter++ ?>
            <?php foreach (array(the_post()) as $post): ?>
                <?php if ($postCounter == 1): ?>
                    <div class="container-fluid">
                        <div class="row">
                            <h1>Tu będzie pierwszy post</h1>
                        </div>
                    </div>
                <?php endif; ?>
                <div class="container">
                    <div class="row">
                        <div class="col-12">
                            <?php if ($postCounter > 1): ?>
                                <h1>Tu będzie kolejny post</h1>
                            <?php endif; ?>
                        </div>
                    </div>
                </div>
            <?php endforeach ?>
        <?php endwhile; ?>
    <?php endif; ?>

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Спасибо за ваш ответ, но я буду использовать bootstrap. Я хочу иметь первый пост в контейнере-флюиде, но остальные посты хотят не иметь в контейнере, и у меня возникла проблема, потому что, если я использую ваш код, у вас будет собственный контейнер и строка.

Efect будет как ниже

    if ( have_posts() ) : 

        $first = true;

        while ( have_posts() ) : the_post();
            if ( $first ):
                $first = false;
                ?>
                <div class="container-fluid">
                      <div class="row">
                            first post
                      </div>
                </div>
                <?php
            else:
               ?>
               <div class="container">
                      <div class="row">
                            post 2
                      </div>
                </div>
                <div class="container">
                      <div class="row">
                            post 3
                      </div>
                </div>
                <div class="container">
                      <div class="row">
                            post 4
                      </div>
                </div>
               <?php
            endif;

        endwhile; 
    endif; 
    ?>
0 голосов
/ 27 апреля 2020

Вы можете установить логическое значение $first на true, а затем изменить его на false в первом посте. Тогда все, что вам нужно сделать, это добавить разные HTML в зависимости от того, $first равен true или нет.


    <?php 
    if ( have_posts() ) : 

        $first = true;

        while ( have_posts() ) : the_post();
            if ( $first ):
                $first = false;
                ?>
                <div>First Post</div>
                <?php
            else:
               ?>
               <div>Not First Post</div>
               <?php
            endif;

        endwhile; 
    endif; 
    ?>
...