Миниатюры через произвольные поля: 10 способов лечения геморроя )))
Автор: admin | Рубрика: Настройка WordPress, Справочник WordPress Воскресенье 20 Дек 2009Надеюсь, название этой заметки Ваc позабавит, а ее содержание – поможет в решении технических проблем с выводом миниатюр через произвольные поля. Но сперва, в качестве вводной, – немного теории.
Однажды человек по имени Даррен Хойт придумал свой шаблон Mimbo. Это была первая журнальная wordpress тема (magazine). Это была революция в WordPress, воспламенившая многих дизайнеров и кодеров на создание своих журнальных тем. С тех пор их появилось большое количество, и непременным атрибутом этих шаблонов стали произвольные поля (custom fields), с помощью которых в шаблоны начали вставлять различный контент, и в подавляющем количестве – миниатюры, то есть, картинки.
Весь процесс состоит из двух компонентов – заполнить поле Ключ (или Имя, у кого как), и поле Значение. Со временем выяснилось, что это дело стало очень обременительным для большинства пользователей WordPress )))) Действительно, это очень тяжело: скопипастить в Ключ какой нибудь thumbnail, и прописать в Значении путь к картинке, – руки отваливаются, а на ладонях волосы вырастают )))))))).
Справедливости ради, не могу не войти в положение всех ненавистников произвольных полей: заполнить Имя и Значение, конечно, не трудно, если эту операцию не нужно повторить двести раз в кратчайший срок, когда ставишь новый шаблон на уже готовый блог )))) Я сам с этим сталкивался не раз, согласен, что это запарно.
Сейчас, конечно, появились новые технологии, которые позволяют избежать использования произвольных полей для размещения графики в постах, но должно пройти еще какое-то время, пока эти новые способы перейдут из платных премиум тем в бесплатный формат и распространятся повсеместно. Лично я готов способствовать этому всеми силами. Но речь сегодня пойдет не об этом.
Поскольку размещение картинок через произвольные поля все еще широко распространяется, неизбежно возникают ошибки, связанные с использованием этой функции. Казалось бы, сложно ошибиться в таком простом процессе, но тем не менее, подобных прецедентов много – я сужу по тем комментариям, которые получаю на своих вордпрессовских сайтах.
Я уже сделал одну полезную заметку, посвященную произвольным полям, сегодня же хочу написать новую, суть которой можно сформулировать так:
У меня не выводятся картинки, размещаемые через произвольные поля, что мне делать?
Словом, если Вы столкнулись с таким геморроем, то как это вылечить? Добрый доктор Гудвин пропишет Вам сегодня свое лекарство )))))))
Ситуация с возникающими ошибками осложняется тем, что сейчас очень модно использовать в шаблонах вывод графики через кастом филдс, комбинированный со скриптами, на лету изменяющими размер картинок (phpThumb или tinyThumb), то есть, Вы подгружаете картинку, а скрипты ее сами режут и меняют ее размер в соответствии со стилем шаблона. Использование таких скриптов часто и является основным источником проблем и вопросов. А теперь, если Вы еще не уснули или не перешли на блогстайл.ру, читая эту теоретическую часть, перейдем к практике )))
На что нужно обратить внимание, если Вы разместили картинку через произвольные поля, а она не выводится? По моей идее, последовательно сверяя свои действия с этим списком и выполняя эти рекомендации, на какой-то из ступеней все у Вас должно наладиться и четко работать.
1. Проверьте ключ. Разные авторы шаблонов используют свои ключи, тут нет одного стандарта. У кого-то это Image, а у кого-то image – на самом деле, это разные вещи, всегда учитывайте регистр и прописывайте ключ строго, как указал автор шаблона.
2. Проверьте путь к картинке. Многие загружают картинку в uploads, и потом прописывают конструкцию типа wp-content/uploads/2009/12/picture.jpg
Это длинный и неудобный вариант, тут легко ошибиться и писать это действительно запарно. Вариант, который предлагаю я, кажется мне наиболее быстрым – простой создайте на сервере в корне сайта новую папку, например, kartinki, загружайте всю графику в нее, а потом в Значении пишите kartinki/picture.jpg – как видите, путь короче и возможности ошибиться меньше.
3. Абсолютный или короткий путь. В зависимости от архитектуры сервера и расположения Ваших сайтов, Вам может понадобиться написать не короткий путь, как в пункте 2, а полный, или, выражаясь грамотнее, абсолютный. Так что попробуйте такой вариант: http://ваш_сайт.ru/kartinki/picture.jpg
4. Проверьте www. По той же причине вывод картинок может быть чувствителен к использованию такого компонента урла, как www. Поэтому есть смысл попробовать путь с www или без него – у кого как.
5. Проверьте расширение картинки. Некоторые люди предпочитают указывать расширение картинки как jpeg, тогда как оригинал на сервере имеет расширение jpg – или наоборот.
6. Проверьте, есть ли вообще такая картинка на сервере – иногда люди создают картику в фотошопе, прописывают ее в произвольных полях…. но банально забывают залить ее или закинут по ошибке не в ту папку, часто бывает и такое.
7. Артибуты. Если у Вас в шаблоне подключен скрипт ресайза картинок, то часто проблемы бывают связаны с ним. Такие скрипты, как phpThumb или tinyThumb предполагают наличие папки cache, в которой кэшируются отредактированных миниатюры. Часто картинки не отображаются, потому что артибуты этой папки запрещают доступ к содержимому. Поэтому проверьте атрибуты cache, поставьте 750 или 777. Такие же атрибуты должна иметь и та папка, в которую Вы заливаете исходники. Это делается через Ваш файловый менеджер, меню Файл > Изменить атрибуты.
8. Некоторые люди заливают картинки в папку images, которая находится в директории шаблона. Это не правильно, никогда так не делайте. Лучше всего действовать как в пункте 2.
9. Напишите на хостинг. Если все сделано правильно, а картинки все равно не отображаются, есть вероятность, что тут Вам “помог” хостинг. Напишите в саппорт письмо, узнайте, включены ли на сервере GD библиотеки (они нужны для стабильной работы скриптов), и если – о ужас! – нет, то пусть немедленно их включат, чтобы скрипты могли нормально работать. Для справки, на нормальном хостинге такие вещи включены по умолчанию.
10. Картинки расположены на другом сервере. Как правило, при использовании скриптов, картинки, расположенные на стороннем сервере, не будут выводится. То есть, если у Вас использованы скрипты phpThumb или tinyThumb, ссылки на графику, расположенную на чужих серверах, писать бесполезно. Лучше сохраните эту графику и закиньте на свой сервер (как в пункте 2).
Как правило, разобраться с неработающими произвольными полями можно уже на первых трех пунктах. Если проблема сложна, то остальные помогут справиться с более сложными ошибками.