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