Wordpress Loop с загрузочной сеткой.Как оптимизировать этот код? - PullRequest
0 голосов
/ 16 февраля 2019

enter image description here enter image description here

В первом коде img работает с постами == 5 Во втором коде изображения нарушается, если посты == 3.row doenst close

Как использовать WordPress Lopp с сеткой Bootstrap Я хочу узнать, как лучше оптимизировать мой код.Этот код работает правильно, но я хочу просто оптимизировать этот код, я думаю, что это не лучшее решение.Пожалуйста, покажи мне, как я могу оптимизировать этот код.Спасибо.

<div class="container">
<?php
$args = [
  'post_status'            => 'publish',
  'posts_per_page'         => 6,
  'no_found_rows'          => true,
   ];

$query = new WP_Query( $args );

while ( $query->have_posts() ) : $query->the_post();

if ( $query->current_post === 0 )
{
echo '<div class="row">';
   echo '<div class="col-12 col-lg-6">'; ?>
      <article id="post-<?php the_ID(); ?>" <?php post_class( 'post 1' ); ?>>
         <figure>
	          <?php the_post_thumbnail('full', array('class' => 'img-fluid') ); ?>
         <figure>
   	     <div class="entry">
            <div class="entry-title">
               <?php the_title(); ?>
            </div>
         </div>
      </article>
    <?php
    echo '</div>'; 
    }

if ( $query->current_post === 1 )
{
echo '<div class="col-12 col-lg-6">'; ?>
	  <article id="post-<?php the_ID(); ?>" <?php post_class( 'post 2' ); ?>>
         <figure>
	          <?php the_post_thumbnail('full', array('class' => 'img-fluid') ); ?>
         <figure>
   	     <div class="entry">
            <div class="entry-title">
               <?php the_title(); ?>
            </div>
         </div>
    </article>
<?php
}

if ( $query->current_post === 2 )
{ ?>
      <article id="post-<?php the_ID(); ?>" <?php post_class( 'post 3' ); ?>>
         <figure>
	          <?php the_post_thumbnail('full', array('class' => 'img-fluid') ); ?>
         <figure>
   	     <div class="entry">
            <div class="entry-title">
               <?php the_title(); ?>
            </div>
         </div>
      </article>
<?php
}

if ( $query->current_post === 3 )
{ ?>
      <article id="post-<?php the_ID(); ?>" <?php post_class( 'post 4' ); ?>>
         <figure>
	          <?php the_post_thumbnail('full', array('class' => 'img-fluid') ); ?>
         <figure>
   	     <div class="entry">
            <div class="entry-title">
               <?php the_title(); ?>
            </div>
         </div>
      </article>
<?php
echo '</div>';  
echo '</div>';  
}

endwhile; wp_reset_postdata(); ?>
</div>
<div class="container">
<div class="row">
    <div class="col-6">
        <img src="" alt="">
        <h1>TITLE</h1>
        <div class="exerpt">
            exerpt
        </div>
    </div>

    <div class="col-6">
         <article class="row">
            <div class="col-4">
                <img src="" alt="">
            </div>
            <div class="col-8">
                title
            </div>
         </article>
         <article class="row">
            <div class="col-4">
                <img src="" alt="">
            </div>
            <div class="col-8">
                title
            </div>
         </article>
         <article class="row">
            <div class="col-4">
                <img src="" alt="">
            </div>
            <div class="col-8">
                title
            </div>
         </article>
    </div>
</div>

<div class="row">
    <div class="col-6">
        post-4
    </div>
    <div class="col-6">
        post-5
    </div>
</div>

1 Ответ

0 голосов
/ 16 февраля 2019

Вам не нужно писать одну и ту же часть кода каждый раз, когда вы проверяете условие.

<div class="container">
<?php
$args = [
  'post_status'            => 'publish',
  'posts_per_page'         => 6,
  'no_found_rows'          => true,
   ];

$query = new WP_Query( $args );

while ( $query->have_posts() ) : $query->the_post();

$post_num = strval($query->current_post + 1);
$post_count = wp_count_posts()->publish;

if ( $query->current_post === 0 || $query->current_post === 4 ) : ?>
    <div class="row">;
<?php ;endif; ?>

<?php if ( $query->current_post === 0  || $query->current_post === 1 || $query->current_post === 4 || $query->current_post === 5 ) : ?>
        <div class="col-lg-6">'
<?php ;endif; ?>

      <article id="post-<?php the_ID(); ?>" <?php post_class( $post_num ); ?>>
        <figure>
              <?php the_post_thumbnail('full', array('class' => 'img-fluid') ); ?>
         </figure>

         <?php if ( $query->current_post === 0) : ?>
         <div class="post_excerpt">
            <?php the_excerpt(); ?>
        </div> 
        <?php ;endif; ?>

         <div class="entry">
            <div class="entry-title">
               <?php the_title(); ?>
            </div>
         </div>
      </article>

<?php if ( $query->current_post === 0 || $query->current_post === 3 || $query->current_post === 4 || $query->current_post === 5 || $query->current_post === $post_count-1 ) : ?>
    </div>
<?php ;endif; ?>

<?php if ( $query->current_post === 3 || $query->current_post === 5 || $query->current_post === $post_count-1 ) : ?>   
  </div>
<?php ;endif; ?>

<?php endwhile; wp_reset_postdata(); ?>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...