Поддержка Темы и шаблоны Вывод пустой категории

  • Приветствую.

    Есть такой код файла category.php:

    <?php global $up_options; ?>
    <?php get_header(); ?>
    
    <div class="border-top">
      <?php  the_breadcrumb(); ?>
    </div>
    <div id="wrapper" class="hfeed">
    <div id="main">
      <?php if ( have_posts() ) : ?>
      <div class="border-toppost"> </div>
      <!-- .CONTENT -->
      <div id="container-insidecp">
        <div class="singlepost">
          <div class="entry-content">
            <?php   
    
    // get the current category
    
    $category = get_the_category();
    
    // get the sticky posts in the category
    
    query_posts(array( 'post__in' => get_option('sticky_posts'), 'orderby' => 'title', 'showposts' => '1' ,'post_date' => 'DESC' , 'cat' => ''.$category[0]->cat_ID.'' ));
    
    ?>
            <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
            <div class="cat-sticky">
              <div class="clear"></div>
            </div>
            <?php endwhile; wp_reset_query(); endif; ?>
            <?php else : ?>
            <?php get_template_part( 'content', 'none' ); ?>
            <?php endif; ?>
            <div class="main-content">
              <div class="title-frontmodule">
                <div class="entry-title"> Свежие материалы в рубрике
                  "<?php
    $category = get_the_category();
    echo $category[0]->cat_name;
    ?>"
              </div>
              </div>
              <?php query_posts($query_string . "&posts_per_page=4"); ?>
              <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
              <div class="cat-box">
                <div class="cat-thumb">
    <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
              <?php
    	$thumb = get_post_thumbnail_id();
    	$img_url = wp_get_attachment_url( $thumb,'full' );
    	$image = aq_resize( $img_url, 110, 110, true ); ?>
              <img src="<?php echo $image ?>" width="110" height="110" alt="<?php the_title(); ?>"/> </a>
    		</div>
                <div class="cat-article">
                  <div class="title-front2"> <a href="<?php  the_permalink(); ?>" title="<?php  the_title(); ?>">
                    <?php  the_title(); ?>
                    </a> </div>
                  <div class="cat-time">
                    <?php the_time('F jS, Y') ?>
                  </div>
                  <div class="blog-article">
                    <?php  echo limit_words(get_the_excerpt(), '12'); ?>
                  </div>
                  <div class="module7-rating">
                    <?php
    	if( get_post_meta(get_the_ID(), 'Rating') ){
    		$Rating= get_post_meta(get_the_ID(), 'Rating');
    		$Rating= explode("/", $Rating[0]);
    		$good = round($Rating[0]);
    		$total  = round($Rating[1]);
    		if(!empty($good) && !empty($total) && ($good <= $total) && is_numeric($good) && is_numeric($total) ){
    			$i=0;
    			while($i < $good){
    				echo '<img src="' . get_template_directory_uri('template_directory') . '/images/star-gold.png" alt="<?php  the_title(); ?>"/>';
    				$i++;
    			}
    			$i = 0;
    			while($i < ($total - $good)){
    				echo '<img src="' . get_template_directory_uri('template_directory') . '/images/star-bw.png" alt="<?php  the_title(); ?>" />';
    				$i++;
    			}
    		} else{
    			echo "Invalid input for the Rating.";
    		}
    	};	?>
                    <div class="age-rating">
                      <?php
    	$customField = get_post_custom_values("agerating");
    if (isset($customField[0])) {
        echo "".$customField[0];
    }
    ?>
                    </div>
                  </div>
                </div>
                <div class="clear"></div>
              </div>
              <?php endwhile; wp_reset_query(); endif; ?>
            </div>
            <!-- MAIN content -->
            <div class="right-content">
              <div class="title-frontmodule">
                <div class="entry-title"> Остальные материалы рубрики
                  "<?php
    $category = get_the_category();
    echo $category[0]->cat_name;
    ?>"
              </div>
              </div>
              <table class="table" cellpadding="2" cellspacing="2" border="0">
                <th colspan="2"> </th>
                  <?php query_posts($query_string . "&posts_per_page=887&offset=4");
                    $i 	= 0;
                    $cols 	= 2;
                    echo '<tr>';
                    if(have_posts()): while (have_posts()) : the_post();
                            $i++;
                            ?>
                  <td class="cat-title" valign="top"><div class="cat-titlepost">
                      <div class="blog-title4"> <a href="<?php  the_permalink(); ?>" title="<?php  the_title(); ?>">
                        <?php  the_title(); ?>
                        </a> </div>
                    </div>
                    <div class="cat-time">
                      <?php the_time('M j, Y') ?>
                    </div></td>
                  <?php if ( ( $i % $cols ) == 0 ) {
                                    echo '</tr>' . "\n";
                                    echo '<tr>';
                            }
                    endwhile;
    
                    else:
                        echo '<tr><td colspan="2"></td>';
                    endif;
                    echo '</tr>';
    ?>
              </table>
            </div>
          </div>
          <!-- .entry-content -->
        </div>
      </div>
      <!-- .SIDEBAR -->
      <?php get_sidebar(); ?>
    </div>
    <?php get_footer(); ?>

    На его основе пустая категория сейчас выглядит так (рисовал при помощи спичечных палочек).

    Не устраивает то, что он запрашивает наличие постов ( <?php endwhile; wp_reset_query(); endif; ?> ) и, в случае их отсутствия, выводит темплейт category-none.php ( <?php get_template_part( ‘content’, ‘none’ ); ?> ), после чего ВСЕ РАВНО показывает остаток страницы (все, что после <div class=»main-content»>, за исключением, конечно же, сайдбара и футера).
    Помогите подправить код так, чтобы при пустой категории выводился исключительно темплейт content-none, без main-content.

    Спасибо.

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Все еще необходима помощь!

    Все еще необходима помощь!

    П 3 и вот

    У вас такой «фарш» в коде, что без пары шашлыков не разберешься 😉 Предложу такое решение (такой же фарш:), в начале файла вы добавляете булев:
    <?php show_main_content = true; ?>
    Затем, когда уходите в исключение, меняете на false:

    <?php endwhile; wp_reset_query(); endif; ?>
    <?php else : ?>
    <?php show_main_content = false; //изменили ?>
    <?php get_template_part( 'content', 'none' ); ?>
    <?php endif; ?>

    Ну а следом, если «ага», то отдаем .main-content:

    <?php if ( show_main_content ) { ?>
        <div class="main-content">
        <?php bla bla .... ?>
    <?php } //закрыли, где требуется ?>


    Код не проверял, отдается как есть, без каких-либо гарантий 🙂 Возможно, вылезет ошибка о путанице if (bla) {} и if (bla): endif;
    Там уже сами 😉

    Благодарю! Жаль, что без шашлыков (:

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Вывод пустой категории» закрыта для новых ответов.