Wordpress | L oop разные кол-мд - PullRequest
0 голосов
/ 17 апреля 2020

Я знаю, что WordPress L oop делается так:

  <?php
    /*MOSTRA NEWS CPT ALLENAMENTO*/
    $query_mostra_cpt_allenamento = array(
        'post_type' => 'news-allenamento',
        'posts_per_page'    => 4,
        'orderby' => 'meta_value',
        'order' => 'ASC',
    );
    $res_cpt_allenamento = new WP_Query( $query_mostra_cpt_allenamento );
    if( $res_cpt_allenamento->have_posts() ) : ?>
        <div style="padding-top: 30px;" class="row">

            <?php  while( $res_cpt_allenamento->have_posts() ) : $res_cpt_allenamento->the_post(); ?>
                <!-- Grid row -->
                <div style="padding-bottom: 10px;padding-top: 10px;" class="col-md-6">
                    ...
                </div>
                <!-- Grid column -->
            <?php endwhile; ?>
        </div>

    <?php endif;
    wp_reset_postdata();
    ?>

, и у меня будет 4 сообщения с col-md-6

, теперь мне нужно что-то еще, или, скорее, я хотел бы создать автоматизированную c структуру, которая, однако, составлена ​​таким образом, как я могу это сделать?

<div class="container">
    <div class="row">
        <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
            <div class="view">
                ...
            </div>
        </div>
                <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                    <div class="container-fluid">
                        <div class="row">
                            <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                                <div class="view">
                                    ...
                                </div>
                            </div>

                            <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                                <div class="view">
                                    ...
                                </div>
                            </div>

                            <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                                <div class="view">
                                    ...
                                </div>
                            </div>

                            <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                                <div class="view">
                                    ...
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
    </div>
</div>

, которая дала бы мне такой результат: новостной журнал

как я могу сделать эту структуру с WordPress L oop?

1 Ответ

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

Можно разделить запрос следующим образом:

<?php
    /*MOSTRA NEWS CPT ALLENAMENTO*/
    $query_mostra_cpt_allenamento = array(
        'post_type' => 'news-allenamento',
        'posts_per_page' => 1, // return only the first post
        'orderby' => 'meta_value',
        'order' => 'ASC',
        'no_found_rows' => true,
    );
    /*MOSTRA NEWS CPT ALLENAMENTO*/
    $query_mostra_cpt_allenamento_after = array(
        'post_type' => 'news-allenamento',
        'posts_per_page' => 3,
        'offset' => 1,// start from the second post
        'orderby' => 'meta_value',
        'order' => 'ASC',
        'no_found_rows' => true,
    );
    $res_cpt_allenamento = new WP_Query( $query_mostra_cpt_allenamento );
    $res_cpt_allenamento_after = new WP_Query( $query_mostra_cpt_allenamento_after ); ?>
   <div style="padding-top: 30px;" class="row">
    <?php if( $res_cpt_allenamento->have_posts() ) : ?>

            <?php while( $res_cpt_allenamento->have_posts() ) : $res_cpt_allenamento->the_post(); ?>

                <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                    <div class="view">
                        ...
                    </div>
                </div>

            <?php endwhile; ?>

    <?php endif;
    wp_reset_postdata();
    ?>
    <?php if( $res_cpt_allenamento_after->have_posts() ) : ?>
                <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                    <div class="container-fluid">
                        <div class="row">
            <?php while( $res_cpt_allenamento_after->have_posts() ) : $res_cpt_allenamento_after->the_post(); ?>

                    <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                        <div class="view">
                            ...
                        </div>
                    </div>

            <?php endwhile; ?>
                        </div>
                    </div>
                </div>
    <?php endif;
    wp_reset_postdata();
?>

    </div>

Другой вариант - добавить счетчик в то время как l oop, проверьте, где вы находитесь и действовать соответственно:

<?php
    /*MOSTRA NEWS CPT ALLENAMENTO*/
    $query_mostra_cpt_allenamento = array(
        'post_type' => 'news-allenamento',
        'posts_per_page'    => 4,
        'orderby' => 'meta_value',
        'order' => 'ASC',
    );
    $res_cpt_allenamento = new WP_Query( $query_mostra_cpt_allenamento );
    $i = 0;
    if( $res_cpt_allenamento->have_posts() ) : ?>
        <div style="padding-top: 30px;" class="row">

            <?php  while( $res_cpt_allenamento->have_posts() ) : $res_cpt_allenamento->the_post(); $i++; ?>
                <?php if ($i < 2) : ?>
                    <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                        <div class="view">
                            ...
                        </div>
                    </div>
                <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                    <div class="container-fluid">
                        <div class="row">
                <?php else : ?>
                            <div style="padding-right: 0px;padding-left: 0px;border: 1px solid #fff" class="col-md-6">
                                <div class="view">
                                    ...
                                </div>
                            </div>
            <?php endwhile; ?>
                        </div>
                    </div>
                </div>
        </div>

    <?php endif;
    wp_reset_postdata();
    ?>

Не уверен насчет структуры, но это логика c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...