Вывод постов на главной без использования двух циклов

Ноя 9th, 2009 | От Aleksey Davlad | Категория: CMS WORDPRESS, ХАКИ

Много тем последнее время выводят различные по виду посты на главной странице. Например, первые три записи выводятся полностью,с изображениями и текстом, а остальные посты показываются более просто или показываются только их названия.

Как правило используются два различных циклов для достижения этой цели, что часто может привести к дальнейшим проблемам. Можно использовать более простой метод.

Но эту проблему можно решить и без использования дополнительного цикла.

Достаточно существующие циклы в файл index.php заменить на приведенные ниже:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 <?php
$postnum = 0;
while (have_posts()) : the_post(); ?>
 
<?php if ($postnum <= 3){ ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
  <div class="date"><span><?php the_time('M j') ?></span></div>
    <h2>(<?php echo $postnum;?>)<a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
	<div class="post-image" style="text-align:center;">
		<a href="<?php the_permalink() ?>"><img src="<?php bloginfo('template_directory' ); ?>/timthumb.php?src=<?php  echo catch_that_image(); ?>&amp;w=500&amp;h=200&amp;zc=1" alt="<?php the_title(); ?>" /></a>
	</div>
	<p><?php the_content('Read the rest of this entry &raquo;'); ?></p>
	<p class="more"><a href="#">Read More</a></p>
  </div>
</div>
 
<?php } else {
<div <?php post_class( 'single ' . $end ); ?> id="post-<?php the_ID(); ?>">
	<div class="post-content">
		<h3><a href="<?php the_permalink() ?>">(<?php echo $postnum; ?>)<?php the_title(); ?></a> <?php edit_post_link('_', '', ''); ?></h3>
		<p><?php the_excerpt( '' ); ?></p>
		<p class="more"><a href="#">Read More ?</a></p>
	</div>
</div><!-- End post -->
 
<?php }
	endwhile;
	?>

Коротко о действиях:

Мы созданную переменную PHP, с именем $ postnum, которая вызывается в конце цикла. Если $ postnum меньше или равна 3, пост отображается в полном объеме. В противном случае,он отображается как цитата.

Теги: ,

Комментарии статьи