Задать вопрос

Как заставить Wordpress пропустить цикл при отсутствии контента и грузиться дальше?

Доброго дня!

Есть на WP сайте код, выводящий определенную таксономию. Это афиша, и когда проходит срок мероприятия, запись автоматически скрывается.

<!--    События-->

    <?php
    if (have_posts()) :

      $args = array(
          'post_type' => 'event',
          'posts_per_page' => 8,
          'meta_query' => array(
              'relation' => 'AND',
              array(
                  'key' => 'event_date',
                  'value' => current_time('Y-m-d'),
                  'compare' => '>='
              ),
              array(
                  'key' => 'event_type',
                  'value' => 'event'
              )
          ),
          'orderby' => 'meta_value',
          'order' => 'ASC'
      );

      query_posts($args);
      ?>
      <?php
      while (have_posts()) : the_post();
        $custom = get_post_custom($post->ID);
        ?>

        <div class="af-block" style="background-image: url('<?php echo get_the_post_thumbnail_url() ?>');">
          <a href="<?php echo $custom["event_link"][0]; ?>" target="_blank">
            <div class="mask"></div>
            <div class="tag_block">
              <div class="date_block">
                <?php
                $meta = get_post_meta($post->ID, 'event_date', true );
                esc_html_e( mysql2date( 'j F' , $meta ) );
                ?>
              </div>
              <div class="place_block">
                <?php if (isset($custom["event_space"][0])) { ?><?php echo $custom["event_space"][0]; ?><?php } ?>
              </div>
            </div>
            <h2><?php the_title()?></h2>
          </a>
        </div>
      <?php endwhile; ?>
      <?php
    endif;
    ?>

    <!--    Фестивали-->
    <?php
    if (have_posts()) :

      $args = array(
          'post_type' => 'event',
          'posts_per_page' => 8,
          'meta_query' => array(
              'relation' => 'AND',
              array(
                  'key' => 'fest_end',
                  'value' => current_time('Y-m-d'),
                  'compare' => '>='
              ),
              array(
                  'key' => 'event_type',
                  'value' => 'fest'
              )
          ),
          'orderby' => 'meta_value',
          'order' => 'ASC'
      );

      query_posts($args);
      ?>
      <?php
      while (have_posts()) : the_post();
        $custom = get_post_custom($post->ID);
        ?>

        <div class="af-block" style="background-image: url('<?php echo get_the_post_thumbnail_url() ?>');">
          <a href="<?php echo $custom["event_link"][0]; ?>" target="_blank">
            <div class="mask"></div>
            <div class="tag_block">
              <div class="date_block">
                C
                <?php
                $meta = get_post_meta($post->ID, 'event_date', true );
                esc_html_e( mysql2date( 'd.n' , $meta ) );
                ?>
                по
                <?php
                $meta = get_post_meta($post->ID, 'fest_end', true );
                esc_html_e( mysql2date( 'd.n' , $meta ) );
                ?>
              </div>
              <div class="place_block">
                <?php if (isset($custom["event_space"][0])) { ?><?php echo $custom["event_space"][0]; ?><?php } ?>
              </div>
            </div>
            <h2><?php the_title()?></h2>
          </a>
        </div>
      <?php endwhile; ?>
      <?php
    endif;
    ?>
  </div>
  </div>
  <div class="row">
    <?php
    if (have_posts()) :
      $array_type = array('post_type' => 'discourse', 'posts_per_page' => 1, 'offset' => 1);
      query_posts($array_type);
      ?>

      <?php
      while (have_posts()) : the_post();
        if ( has_post_thumbnail()) {
          $thumb = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large');
        } else {
          $thumb[0] = get_bloginfo('template_url')."/img/no_thumb.jpg";
        }
        $custom_views= get_post_custom($post->ID);
        ?>

        <div class="item2 col-xs-12 col-md-12">
          <a href="<?php the_permalink(); ?>" class="post_link">
            <div class="txt"> <h2><?php the_title();?> </h2></div>
            <img src="<?php echo $thumb[0]; ?>" alt="">
          </a>
        </div>

      <?php endwhile; ?>
    <?php endif; ?>
  </div>
  <div class="row">
    <?php
    if (have_posts()) :
      query_posts('cat=1,139,140&posts_per_page=8&offset=9');
      ?>

      <?php
      while (have_posts()) : the_post();
        if ( has_post_thumbnail()) {
          $thumb = wp_get_attachment_image_src( get_post_thumbnail_id(), 'medium');
        } else {
          $thumb[0] = get_bloginfo('template_url')."/img/no_thumb.jpg";
        }
        $custom_place = get_post_custom($post->ID);
        ?>

        <div class="item col-lg-3 col-md-4 col-sm-6">
          <div class="item-img">
            <a href="<?php the_permalink(); ?>">
              <img src="<?php echo $thumb[0]; ?>" alt="">
            </a>
          </div>
          <div class="tag_block_2">
            <div class="category_block_news"><?php echo the_category(' '); ?></div>
            <div class="date_block_news">
              <?php
              if ( in_category( array (1,139) )) {
                if (isset($custom_place["news_place"][0])) {  echo $custom_place["news_place"][0]; }
              }
              elseif ( in_category(140)) {
                if (isset($custom_place["local_citylife"][0])) {  echo $custom_place["local_citylife"][0];  }
              }
              ?>
            </div>
          </div>
          <div class="item-txt">
            <div class="title_txt">
              <a href="<?php the_permalink(); ?>">
                <h2><?php the_title()?></h2>
                <p><?php kama_excerpt(); ?></p>
              </a>
            </div>
          </div>
        </div>
      <?php endwhile; ?>
    <?php endif; ?>
  </div>


Переодически, редакторы работают не достаточно быстро и актуальных записей попросту не остается. Тогда WP не загружает следующие блоки - циклы, выводящие уже другой материал. Как сделать так, чтобы при отсутствии контента WP без зазрения совести грузил статьи дальше?
  • Вопрос задан
  • 329 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@unet900
php разработчик ...
Не совсем понятен вопрос. Вот вы привели код выводятся посты категории events. А как у вас другие блоки выводятся ?? Подозреваю, что они в этом же цикле находятся вот и не выводятся. Это же код шаблона у вас приведите код полностью плз и поясните какие блоки должны выводиться.
А в целом эти блоки у вас где-то внутри WP цикла вывода постов вот и не выводятся когда постов нет.
Ответ написан
Ваш ответ на вопрос

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

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