Записи с тегом "изображение"
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, предлагающем информацию о коммерческом транспорте, представлена вся спецтехника и грузовики, продажа которых осуществляется как частными лицами, так и производителями и официальными дилерами. Данный сайт является приложением к журналу “Коммерческие Авто”.

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

  1. изображение к посту;
  2. заголовок поста;
  3. текст поста.

При таком раскладе, если изображение вставить в текст поста, то не получится вышеуказанная структура.

В таком случае на помощь приходят произвольные поля. Допустим, создали поле с названием image, в значении которого у каждого поста будем указывать полную ссылку на соответствующее изображение.

Чтобы вывести это изображение, в надлежащем месте шаблона используем следующий код:

<?php $image = get_post_meta($post->ID, 'image', true); ?>
<?php if ($image) { ?><img src="<?php echo $image; ?>" alt="<?php the_title(); ?>" class="image" /><?php } ?>

Что мы сделали?

Первой строкой мы считываем дополнительное поле image, передавая его в переменную $image. А второй строкой выводим это изображение, при условии, что это изображение было задано у поста.

—–
Работы, осуществляемые специализированной компанией “Стройтехсервис” – ремонт квартир, офисов, домов и магазинов от косметического до евроремонта, индивидуальные дизайн-проекты. Все работы выполняются оперативно и качественно.

Облако тегов