Миниатюры к записи. Варианты решений.

В процессе создания сайтов на wordpress постоянно приходится иметь дело с миниатюрами.

Я покажу способы, которые сам использую в своих работах.

изначально в файл functions.php моей темы я добавляю

add_theme_support('post-thumbnails');

там же мы можем задать необходимый нам размер миниатюры

set_post_thumbnail_size(150, 150, false);

начнем с самого простого:

выведем миниатюру, которую мы зададим при создании записи
в правой колонке внизу ищем «задать миниатюру» и задаем.

в шаблон нашей темы запишем:

<?php echo get_the_post_thumbnail(); ?>

в итоге мы увидим в заданном месте нашу миниатюру.

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

в файл functions.php добавляем

function get_post_thumbnail() {
$files = get_children('post_parent='.get_the_ID().'&post_type=attachment&post_mime_type=image');
if($files) :
$keys = array_reverse(array_keys($files));
$j=0;
$num = $keys[$j];
$image=wp_get_attachment_image($num, 'large', false);
$imagepieces = explode('"', $image);
$imagepath = $imagepieces[1];
$thumb=wp_get_attachment_thumb_url($num);
print $thumb;
else:
print "/wp-content/themes/your-theme/imgs/no-photo.jpg";
endif;
}

а в шаблоне выводим так:

<img src="<?php get_post_thumbnail();?>" />

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

в поисках выхода их положения, я нашел очень простой сниппет

<?php if ( has_post_thumbnail() ) {
 echo get_the_post_thumbnail($post_id, 'thumbnail'); }
 else { ?> <img alt="<?php the_title(); ?>" src="<?php get_post_thumbnail();?>" />
 <?php } ?>

в данном случае в шаблоне мы указываем условие, при котором в случае отсутствия картинок в записи вообще — будет выводиться заглушка — та самая no-photo.jpg
если мы загрузим картинки к посту — появится первая автоматом в миниатюре
а если она нам не нравится — смело идем в правую колонку и задаем миниатюру ручками.

больше писать по идее нечего. остальное для get_post_thumbnail по необходимости беру на сайте wordpress



Добавить комментарий