Записи с тегом "цикл"
27 июля 2009 г.

Может возникнуть необходимость выделения особым образом первого поста в цикле (например, когда нужно сделать совершенно другой дизайн в отличие от остальных постов), будь то главная страница, страница архивов, поиска и т.д. Такая задача решается путем добавления специального CSS-класса с помощью несложного PHP-кода.

Первоначально имеем примерно такой стандартный цикл вывода наших постов:

<?php if (have_posts()) : ?>
	<?php while (have_posts()) : the_post(); ?>

		<div class="post">
			...
		</div>

	<?php endwhile; ?>
<?php endif; ?>

Чтобы сменить оформление первого поста с помощью CSS, добавим к нему класс first. Код цикла примет следующий вид:

<?php $i = 0; ?>
<?php if (have_posts()) : ?>
	<?php while (have_posts()) : the_post(); ?>
	<?php $i++ ?>

		<div class="post<?php if ($i == 1) echo ' first'; ?>">
			...
		</div>

	<?php endwhile; ?>
<?php endif; ?>

Вот и все. Теперь, остается, используя класс first, переопределить стили для первого поста.

—–
На сайте “из рук в руки” публикуются бесплатные частные и коммерческие объявления. Здесь вы можете добавить объявление, если вам нужно что-либо продать или купить, и его увидит большая аудитория.

11 июля 2009 г.

Имеется очень интересная возможность – с помощью PHP получить код первого изображения из поста и затем отобразить его в нужном месте цикла. Это может быть полезно, например, когда текст поста отображается в виде анонса.

В файл functions.php необходимо вставить следующую функцию:

function catch_that_image() {
	global $post, $posts;
	$first_img = '';
	ob_start();
	ob_end_clean();
	$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
	$first_img = $matches [1] [0];
	if(empty($first_img)) {
		$first_img = "/images/default.jpg"; // Ссылка на изображение-заглушку, если в посте оно не найдено
	}
	return $first_img;
}

После этого в цикл там, где нужно отобразить первое изображение из поста, вставляем следующий код:

<img src="<?php echo catch_that_image(); ?>" alt="" />

Тегу img можно указать ширину прямо в нем, или через CSS. Высоту при этом указывать не стоит, чтобы уменьшенное изображение сохраняло пропорции.

—–
В портале Trucklist.ru, предлагающем информацию о коммерческом транспорте, представлена вся спецтехника и грузовики, продажа которых осуществляется как частными лицами, так и производителями и официальными дилерами. Данный сайт является приложением к журналу “Коммерческие Авто”.

6 июля 2009 г.

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

Если просто сделать копию основного цикла, добавив нужные параметры через query_posts, то может так получиться, что в результате “поломаются” оба цикла. Чтобы этого избежать, необходимо у второго цикла (не основного) использовать 2 дополнительные строки кода:

<?php $temp_query = $wp_query; ?>
	<?php query_posts('showposts=3&cat=7) ?>
	<?php if (have_posts()) : ?>
		<?php while (have_posts()) : the_post(); ?>
			  ...
		<?php endwhile; ?>
	<?php endif; ?>
<?php $wp_query = $temp_query; ?>

Ключевыми в данном коде являются первая и последняя строки, которые и спасают циклы от разрушения.

—–
Хороший сайт-магазин, продающий материалы для отделки и ремонта: облицовочная плитка, мозаика керамогранит, натуральный камень, ступени. Порадует большой ассортимент продукции и действующие скидки.

Облако тегов