Потребовалось мне недавно организовать на блоге вывод изображений рядом с анонсом поста. Как известно, при добавлении в пост картинок обычным способом, они выводятся только при публикации статьи полностью.
А как красиво смотрится главная страница блога, если на ней рядом с анонсами постов находятся картинки из этих постов!
Оказывается, это можно сделать при помощи Произвольных полей – есть такая фишка в WordPress.
Вот, как это делается:
Сначала вставляем ссылку на картинку во все файлы, в которых требуется вывод картинок:
<img src="<?php echo get_post_meta($post->ID, "thumbnail", true); ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>" /> |
Дальше ищем на странице редактирования записи Произвольные поля.
Добавить новое произвольное поле:
- В поле Ключ пишем название нашего поля thumbnail;
- В поле Значение пишем адрес, по которому расположена картинка. Например так:
http://vash_sait/wp-content/themes/theme_name/img/1.jpg |
Или так:
/wp-content/themes/theme_name/img/1.jpg |
Нажимаем: «Добавить новое произвольное поле»
Все! Наша картинка будет опубликована в посте.
Когда вам нужно будет добавить картинку в другой пост, просто выберите в поле «Выбор» название вашего Ключа, а в поле «Значение» добавьте адрес нужной картинки.
Имейте ввиду, при использовании этого кода:
<img src="<?php echo get_post_meta($post->ID, "thumbnail", true); ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>" /> |
на странице отобразится некрасивый прямоугольник с надписью из тега alt, если вы забудете добавить картинку к своему посту.
Чтобы этого не случилось, можно проверять существует ли значение произвольного поля thumbnail (т.е. не забыли ли вы указать адрес картинки или может быть указали картинку с другим ключом), и если оно отсутствует, то выводить дефолтнyю картинку defolt.jpg:
<?php $image = get_post_meta($post->ID, 'thumbnail', $single = true); ?> <?php if($image !== '') { ?> <img src="<?php echo get_post_meta($post->ID, "thumbnail", true); ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>" /> <?php } else { ?> <img src="<?php bloginfo('template_url') ; ?>/img/defolt.jpg" title="<?php the_title(); ?>" alt="<?php the_title(); ?>" /> <?php } ?> |
Если вы не хотите использовать дефолтную картинку, да и вообще не собираетесь вставлять изображения в каждый свой пост (а только в некоторые) можно использовать следующий код:
<?php $image = get_post_meta($post->ID, 'thumbnail', true); if($image !== ''){ ?> <img src="<?php echo get_post_meta($post->ID, "thumbnail", true); ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>" /> <?php } ?> |
Этот код выводит изображение в посте и в анонсе, только тогда, когда вы его зададите. В противном случае ничего не выводится.
Произвольные поля дают свободу в организации и расположении информации на странице, Следует отметить, что функцию get_post_meta() можно использовать за пределами цикла WordPress.
Help, версия 3.3.1 не могу найти произвольные поля....
В админке справа сверху - Опции отображения - поставить галочку у произвольных полей. И все будет ))
Добрый день! Я тотальный новичок. А может такое быть, что в записи не может быть произвольных полей? Хочу вывести картинки на главную, но никак не могу найти произвольных полей…
Включите их в правом верхнем углу страницы в блоке "Атрибуты страницы".
Предыдущий вопрос снят. Сорри.
Но появился другой.
Почему не возможно вставить два и более произвольных поля Thumbnail??
Потому, что переменная не может иметь 2 значения одновременно :).
при установке вашей темы Sabrina_gray миниатюра выводится,но в полной новости так же выводится миниатюра,как сделать, чтобы картинка была полной?
Все вопросы задавайте, пожалуйста, на форуме .
Это делается гораздо проще, я именно так вывожу анонсы. Причем, анонсы таким образом можно делать УНИКАЛЬНЫЕ, а не вырывать цитату из начала, что собственно гораздо лучше для СЕО. Просто как всё гениальное. 🙂
КОД АНОНСА ПОСТА
КОД САМОГО ПОСТА
Анонс будет выводиться на индексе, а в посте нет.
Правда, для вывода такого анонса в архивах и поиске в большистве шаблонов для ВП придется поковыряться в файлах archive.php и search.php и либо вставить туда
Либо вставить LOOP что используется в индексе. Но если нужно только на индексе, то достаточно только того написал вначале.
Не отобразился код, 2-я попытка 🙂
КОД АНОНСА ПОСТА
<!--more--><!--noteaser-->
КОД САМОГО ПОСТА
Вот интересно, а как вставить значение произвольного поля после more и noeaser?
есть что-то подобное не только для отдельной записи блога, а для целой категории?
Это как раз для категории и есть.
В отдельной записи картинки и без этого нормально выводятся.
Такой вот вопрос как сделать так чтобы в произвольное поле вставить ссылку(для каждого поста своя).
И при просмотре поста в виджете отображалась эта ссылка ???
Ксана, доброго времени суток! Вы пишите:
Помогите, куда именно нужно вставлять, в какие файлы. что это за файлы? У меня совершенно точно в произвольном поле прописан адрес картинки. Но рядом с анонсом на главной она так и не отображается.
Это все файлы, которые создают анонсы - index.php, archive.php, search.php.
А чем плох вариант с миниатюрой. Гораздо удобнее в процессе редактирования фото жмешь "Сделать миниатюрой" и все.
Здравствуйте! У меня в шаблоне уже стоит код
ID, "thumbnail", true) ): ?>
<img src="ID, "thumbnail", true); ?>" />
Как бы не пыталась вставить по вашим рекомендациям картинку в анонсе поста -- ничего не получается. Остается только рамочка в которой написано изображение. Ключ пишу тот который thumbnail путь к картинкеи короткий указывала, и полный. Ничего не получается. Можно еще раз разжевать для "особо одаренных" в чем может быть проблема! Спасибо
Попробуйте этот способ.
Приветствую! В записях изображения выводится хорошо, но в плагине WP-Property ( http://wordpress.org/extend/plugins/wp-property ) никак не хочет. За вывод записей отвечает файл property-overview.php , другие произвольные поля выводятся без проблем, изображение не хочет. На сайте ( http://ibis.16mb.com ) в списке недвижимости рядом с миниатюрой поста необходимо вывести маленькое изображение. Прошу помочь, очень нужно.
Sorry, я не занимаюсь переделкой чужих плагинов.
Вам лучше обратиться к разработчику этого плагина.
Ксана, подскажите , активировал плагин ACF, но в админке о существовании полей не слышно и не видно ... Как такое возможно ? Благодарю
Понятия не имею :). Почему вам не спросить об этом у автора плагина?
Ксана очень тяжелый вопрос!
Как удалить произвольное поле имя к примеру "_123" под "ноль"(и в постах и на страницах и в базе данных)
В постах - удалить код вывода из файлов темы,
в базе - поищите плагин для работы с базой.
Если нет опыта, непосредственно в базу лучше не лезть.
У меня доска объявлений. Вот как мне сделать так чтоб выводить город и т.д., у меня что то не получается
Здравствуйте! Ксана, подскажите - Как узнать (или где посмотреть в коде) название Ключа для произвольных полей для конкретной темы?
В файлах темы, в выводе из произвольного поля.
А как сделать чтоб изображение было только в анонсе,а при открытии его не было.
Код вывода добавить только в файл для вывода категорий, а для вывода записей не добавлять :).
Здравствуйте! Один ваш пост мне когда-то очень помог, но в этом я не нашёл ответа, потому надеюсь, что вы поможете в комментариях.
Достался мне сайтик с этими доп.полями, разрабы наворотили непойми чего и получается следующее:
Есть поле "img-small" для миниатюр записей с параметрами:
[img-small]
type = file
В поле вводится определённая циферка (допустим "567"), я никак не могу понять откуда её брать. Ваш вариант с вложением в поле ссылки на изображение не помогает (((
Не видя кода вашего шаблона, подсказать ничего не смогу.
это id медиафайла
При чем тут организация вывода ID? Человек спрашивает откуда циферку брать. Брать из медиафайлов - attachment_id, или post.
Как организован вывод? Аффтар пишет: link = flie, раз есть такие поля, значит вывод может быть организован например так:
echo do_shortcode('[gallery link="file" include="567"]');
где линк и инклуд выведены ему в произвольные поля
Можно ли назначать миниатюрам отдельные ссылки? Чтобы на главной странице при клике на миниатюру не на запись перекидывало, а на другой сайт? Ну и так чтобы для каждой записи можно было отдельные ссылки миниатюрам задавать.
Можно - при добавлении миниатюры.