Жизнь это - мгновения, промежутки. Ночь ушла, солнце скоро взойдет. Сделайте эти промежутки настолько прекрасными насколько это возможно - наполненными молчанием, наполненными благодарностью к существованию, которое дало вам шанс, благодарностью по отношению ко всем тем, кто вам помог. И ждите.


31 мая 2011 г.

Еще один способ вставки миниатюр в WordPress 3.0

Я уже писала о том, что в WordPress 3.0 есть поддержка миниатюр, но выбирать миниатюру каждый  раз вручную при большом количестве публикаций неудобно. Помимо скрипта TimThumb, существуют методы получения сгенерированной средствами WordPress миниатюры для первого изображения в записи путем дописывания дополнительной функции в файле functions.php. Об одном из них уже шла речь здесь.
Однако при переходе с версии WordPress 2.3.3, которой очень многие пользовались в сочетании с плагином Flexible Upload такой метод работать не будет. Сгенерированая новая миниатюра с помощью плагина Regenerate Thumbnails из изображения созданного с помощью Flexible Upload не будет найдена. Чтобы она находилась, нужно пересохранять каждую запись вручную.
Для некоторых своих сайтов на WordPress 2.3.3 использовала также TimThumb с автоматическим получением первого изображения из записи и последующим авторесайзингом. Но в WordPress 3.0 все старые записи, созданные таким способом теряли миниатюру после редактирования страницы.

Поэтому для таких случаев предлагаю следующий работающий вариант.
В файле functions.php добавляем код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 "";
endif;
}
Далее там, где нужно вызывать миниатюру в шаблоне используем
1
</code"" src="" />
И никаких проблем! :)
Аренда серверов в Европе и США.
Виртуальный выделенный сервер от 72$, панель ISPmanager – бесплатно. Качественное обслуживание клиентов от компании AdivoHost.

Отзывов (7) на «Еще один способ вставки миниатюр в WordPress 3.0»


marfix пишет: октября 21, 2010 в 08:02
Спасибо за решение!
Я использую немного по сложнее но хочу перейти на ваше.
Подскажите, а как менять размер миниатюры? Например мне надо чтобы миниатюра была 80×80.
Анастасия пишет: октября 21, 2010 в 08:33
Параметры -> Медиафайлы.
Если нужно изменить размер для уже созданных миниатюр — плагин Regenerate Thumbnails wphelp.ru/2010/regenerate-thumbnails.htm
marfix пишет: октября 21, 2010 в 12:44
Анастасия спасибо! Скачал плагин, буду пробовать!
Я уже сделал на своем сайте по вашему рецепту вывод миниатюр. вставил вот этот код в function.php все работает! Потом почитал в кодексе про функции которые используются там и вот эта часть кода мне непонятна и кажется лишней:
$image=wp_get_attachment_image ($num, 'large', false);
$imagepieces = explode ('"', $image);
$imagepath = $imagepieces[1];
Для чего вызывать вложенное изображение wp_get_attachment_image и еще большого размера, нам ведь миниатюра нужна. Я закомментировал эти три строчки 7,8,9 и все работает! Или всеже этот код нужен? Скажите для чего?
Max пишет: ноября 13, 2010 в 19:00
Спасибо, сейчас попробуем!)
Юлия пишет: ноября 16, 2010 в 01:06
Параметры -> Медиафайлы — этот метод действует только тогда, когда надо, чтобы все миниатюры были одного размера. Подскажите, пожалуйста, если я хочу вывести на главную страницу несколько миниатюр и все разных размеров, что мне надо делать?
Анастасия пишет: ноября 18, 2010 в 23:25
Использовать произвольные поля, или анонсы статей, когда в анонсе показывается все вместе с картинкой в статье до тега more. При этом размер картинки в анонсе будет таким же, каким вы его зададите в статье.
Вячеслав пишет: января 23, 2011 в 01:35
Подскажите, пожалуйста, где можно прописать код по которому при нажатии миниатюры (не миниатюры страницы, а миниатюры в коде страницы!) будет открываться картинка оригинального размера, но не в том же окне, а хотя бы в соседнем.
И есть ли какие-то инструменты в самом движке wordpress чтобы открывать по нажатию миниатюры оригинальные картинки:
а) в другом окне
б) поверх текста (чтобы человек посмотрел, нажал закрыть и читал дальше).
спасибо

Комментариев нет:

Отправить комментарий