Что такое Произвольные поля в WordPress или как опубликовать картинку в блоге

Автор:
(Людмила Лунева)

Веб-дизайнер и разработчик сайтов на wordpress

Потребовалось мне недавно организовать на блоге вывод изображений рядом с анонсом поста. Как известно, при добавлении в пост картинок обычным способом, они выводятся только при публикации статьи полностью.
А как красиво смотрится главная страница блога, если на ней рядом с анонсами постов находятся картинки из этих постов!
Оказывается, это можно сделать при помощи Произвольных полей – есть такая фишка в WordPress.
Произвольные поля в 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 } ?>

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

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(4 голоса, в среднем: 4 из 5)

Комментарии

  1. Произвольные поля дают свободу в организации и расположении информации на странице, Следует отметить, что функцию get_post_meta() можно использовать за пределами цикла WordPress.

  2. Help, версия 3.3.1 не могу найти произвольные поля....

    • В админке справа сверху - Опции отображения - поставить галочку у произвольных полей. И все будет ))

  3. Добрый день! Я тотальный новичок. А может такое быть, что в записи не может быть произвольных полей? Хочу вывести картинки на главную, но никак не могу найти произвольных полей…

    • Включите их в правом верхнем углу страницы в блоке "Атрибуты страницы".

  4. Предыдущий вопрос снят. Сорри.
    Но появился другой.
    Почему не возможно вставить два и более произвольных поля Thumbnail??

    • Потому, что переменная не может иметь 2 значения одновременно :).

  5. при установке вашей темы Sabrina_gray миниатюра выводится,но в полной новости так же выводится миниатюра,как сделать, чтобы картинка была полной?

  6. Потребовалось мне недавно организовать на блоге вывод изображений рядом с анонсом поста. Как известно, при добавлении в пост картинок обычным способом, они выводятся только при публикации статьи полностью.

    Это делается гораздо проще, я именно так вывожу анонсы. Причем, анонсы таким образом можно делать УНИКАЛЬНЫЕ, а не вырывать цитату из начала, что собственно гораздо лучше для СЕО. Просто как всё гениальное. 🙂
    КОД АНОНСА ПОСТА

    КОД САМОГО ПОСТА
    Анонс будет выводиться на индексе, а в посте нет.
    Правда, для вывода такого анонса в архивах и поиске в большистве шаблонов для ВП придется поковыряться в файлах archive.php и search.php и либо вставить туда
    Либо вставить LOOP что используется в индексе. Но если нужно только на индексе, то достаточно только того написал вначале.

  7. Не отобразился код, 2-я попытка 🙂
    КОД АНОНСА ПОСТА
    <!--more--><!--noteaser-->
    КОД САМОГО ПОСТА

    • Вот интересно, а как вставить значение произвольного поля после more и noeaser?

  8. есть что-то подобное не только для отдельной записи блога, а для целой категории?

    • Это как раз для категории и есть.
      В отдельной записи картинки и без этого нормально выводятся.

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

  10. Ксана, доброго времени суток! Вы пишите:

    А как красиво смотрится главная страница блога, если на ней рядом с анонсами постов находятся картинки из этих постов!
    Оказывается, это можно сделать при помощи Произвольных полей – есть такая фишка в WordPress. Сначала вставляем ссылку на картинку во все файлы, в которых требуется вывод картинок:
    <img src="ID, "thumbnail", true); ?>"
    title="" alt="" />

    Помогите, куда именно нужно вставлять, в какие файлы. что это за файлы? У меня совершенно точно в произвольном поле прописан адрес картинки. Но рядом с анонсом на главной она так и не отображается.

    • Это все файлы, которые создают анонсы - index.php, archive.php, search.php.

  11. А чем плох вариант с миниатюрой. Гораздо удобнее в процессе редактирования фото жмешь "Сделать миниатюрой" и все.

  12. Здравствуйте! У меня в шаблоне уже стоит код
    ID, "thumbnail", true) ): ?>
    <img src="ID, "thumbnail", true); ?>" />
    Как бы не пыталась вставить по вашим рекомендациям картинку в анонсе поста -- ничего не получается. Остается только рамочка в которой написано изображение. Ключ пишу тот который thumbnail путь к картинкеи короткий указывала, и полный. Ничего не получается. Можно еще раз разжевать для "особо одаренных" в чем может быть проблема! Спасибо

  13. Приветствую! В записях изображения выводится хорошо, но в плагине WP-Property ( http://wordpress.org/extend/plugins/wp-property ) никак не хочет. За вывод записей отвечает файл property-overview.php , другие произвольные поля выводятся без проблем, изображение не хочет. На сайте ( http://ibis.16mb.com ) в списке недвижимости рядом с миниатюрой поста необходимо вывести маленькое изображение. Прошу помочь, очень нужно.

    • Sorry, я не занимаюсь переделкой чужих плагинов.
      Вам лучше обратиться к разработчику этого плагина.

  14. Ксана, подскажите , активировал плагин ACF, но в админке о существовании полей не слышно и не видно ... Как такое возможно ? Благодарю

    • Понятия не имею :). Почему вам не спросить об этом у автора плагина?

  15. Ксана очень тяжелый вопрос!
    Как удалить произвольное поле имя к примеру "_123" под "ноль"(и в постах и на страницах и в базе данных)

    • В постах - удалить код вывода из файлов темы,
      в базе - поищите плагин для работы с базой.
      Если нет опыта, непосредственно в базу лучше не лезть.

  16. У меня доска объявлений. Вот как мне сделать так чтоб выводить город и т.д., у меня что то не получается

  17. Здравствуйте! Ксана, подскажите - Как узнать (или где посмотреть в коде) название Ключа для произвольных полей для конкретной темы?

    • В файлах темы, в выводе из произвольного поля.

  18. А как сделать чтоб изображение было только в анонсе,а при открытии его не было.

    • Код вывода добавить только в файл для вывода категорий, а для вывода записей не добавлять :).

  19. Здравствуйте! Один ваш пост мне когда-то очень помог, но в этом я не нашёл ответа, потому надеюсь, что вы поможете в комментариях.
    Достался мне сайтик с этими доп.полями, разрабы наворотили непойми чего и получается следующее:
    Есть поле "img-small" для миниатюр записей с параметрами:
    [img-small]
    type = file
    В поле вводится определённая циферка (допустим "567"), я никак не могу понять откуда её брать. Ваш вариант с вложением в поле ссылки на изображение не помогает (((

    • Не видя кода вашего шаблона, подсказать ничего не смогу.

    • это id медиафайла

      • При чем тут организация вывода ID? Человек спрашивает откуда циферку брать. Брать из медиафайлов - attachment_id, или post.
        Как организован вывод? Аффтар пишет: link = flie, раз есть такие поля, значит вывод может быть организован например так:
        echo do_shortcode('[gallery link="file" include="567"]');
        где линк и инклуд выведены ему в произвольные поля

  20. Можно ли назначать миниатюрам отдельные ссылки? Чтобы на главной странице при клике на миниатюру не на запись перекидывало, а на другой сайт? Ну и так чтобы для каждой записи можно было отдельные ссылки миниатюрам задавать.

    • Можно - при добавлении миниатюры.

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

Войти, чтобы написать отзыв.

Внимание: все отзывы проходят модерацию.

Топ комментаторов
АватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватар
Самые комментируемые записи
Самые читаемые записи

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

В каждом письме публикуется код разблокировки.

Пользуйтесь кодом только из последних, пришедших вам на Email, писем. Закрыть »

Постов 204
Отзывов 5330