Вывод миниатюр к статьям в Вордпресс

A
На сайте с 08.12.2010
Offline
104
1346

Есть такой код для вывода миниатюры к анонсу статьи:

<div  class="img-left" >

<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><img src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=&amp;h=160&amp;w=160&amp;q=80&amp;zc=1" /></a>
</div>

Проблема в том, что если в статье нет изображения, будет выводиться пустой блок, что смотриться некрасиво. Как сделать так, чтобы при отсутствии картинки в статье, пустой блок не выводился? Вариант с заполнением его "пустой" картинкой не подойдёт.

jokerov
На сайте с 18.07.2008
Offline
102
#1
alexdn:

Как сделать так, чтобы при отсутствии картинки в статье, пустой блок не выводился? Вариант с заполнением его "пустой" картинкой не подойдёт.

Регулярные выражения в помошь. http://www.php.su/functions/?preg-match

vandamme
На сайте с 30.11.2008
Offline
675
#2

if ... else ...

A
На сайте с 08.12.2010
Offline
104
#3

Не разобрался... В PHP я чайник. Как правильно вписать эту функцию в код?

Попробую на словах описать:

Если картинка есть в статье, то

<div class="img-left" >

............................

</div>

В ином случае - ничего не показывать

alexdn добавил 21.04.2011 в 23:33

vandamme:
if ... else ...

Привет, земляк. Я тоже из Макеевки.

Vadimiys
На сайте с 22.02.2010
Offline
13
#4

Тоже сталкивался с этой проблемой. Решил ее написанием функции на PHP , правда очень криво, в результате дает большую нагрузку на сервер. Если интересует, могу подробно объяснить как сделал. Свяжись со мной через ЛС.

К с тати, я тоже из Макеевки )

Вёрстка, WordPress, DLE. (/ru/forum/601737)
[Удален]
#5

А не проше сделать:

в functions.php написать

function new_images_postic($postic2, $postic3, $postic4){

$imgq2 = split('src="', get_the_post_thumbnail($page->ID, 'thumbnail'));
$imgq2 = split('" class', $imgq2[1]);
if(!$postic2){$postic2=100;}
if(!$postic3){$postic3=100;}
if(!$postic4){$postic4="thumbnail";}
echo'
<img width="'.$postic2.'" height="'.$postic3.'" src="'.$imgq2[0].'" alt="'.get_the_title().'" class="'.$postic4.'" />
';
}

Все, осталось в шаблоне, в месте вывода превью написать:

<?php 

if ( has_post_thumbnail() ){ //если миниатюра есть
new_images_postic('128','135',''); //Это размеры миниатюры и класс
} else { //если нет выводим стандартную картинку ?>
<img src="<?php bloginfo('template_url'); ?>/images/noimage.jpg" width="128" height="135" alt="<?php the_title(); ?>" />
<? }?>

По умолчанию, если параметры не заданы, будет картинка 100 на 100, классом thumbnail.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий