Что такое Custom Fields (произвольные поля) в WordPress?

Custom Fields (произвольные поля) WordPress
Произвольные поля - думаю многие из Вас видели это меню в админ. панели при написании поста или страницы.
Произвольное поле (custom field) состоит из ключа (key) и его значения (value), и с помощью произвольных полей можно вывести практически любую информацию на Вашем блоге.

Сейчас мы рассмотрим несколько примеров работы с произвольными полями.

Пример 1
Например, нам нужно вывести маленькое изображение (превью) рядом с записью в какой нибудь категории. Для этого создадим папку my-image в папке wp-content/uploads/, и загрузим в нее нужные нам изображения. Далее, в нужном месте шаблона index.php (в папке Вашей темы) прописываем следующие:

<img src="http://ВАШ_САЙТ/wp-content/uploads/my-image/<?php echo get_post_meta($post->ID, "preview", $single = true); ?>" />

Например вот так:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<table>
<tr>
<td><img src="http://www.wp-info.ru/wp-content/uploads/my-image/<?php echo get_post_meta($post->ID, "preview", $single = true); ?>" /></td>
<td><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
<?php the_content(); ?></td>
</tr>
</table>
<?php endwhile; ?>
<?php endif; ?>

Теперь при создании записи в меню "произвольные поля" добавим новый ключ (key) - preview, а его значением (value) будет название нужной картинки, например: mypic.jpg.

В результате в нужном нам месте выведется картинка mypic.jpg.

<img src="http://ВАШ_САЙТ/wp-content/uploads/my-image/mypic.jpg" />

Пример 2
Это все хорошо, но если у какой-либо записи мы не указали произвольное поле preview, то ссылка на изображение получится битая:

<img src="http://ВАШ_САЙТ/wp-content/uploads/my-image/" />

Поэтому логично для каждого произвольного поля перед выводом проверять наличие значения для него:

<?php $image = get_post_meta($post->ID, 'preview', true); if($image !== '') { ?>
<img src="http://ВАШ_САЙТ/wp-content/uploads/my-image/<?php echo $image ?>" />
<?php } ?>

Пример 3
Можно также проверять на наличие значения для произвольного поля preview, и если оно отсутствует, то выводить дефолтовую картинку, например defpreview.gif:

<?php $image = get_post_meta($post->ID, 'preview', $single = true); ?>
<?php if($image !== '') { ?>
<img src="http://ВАШ_САЙТ/wp-content/uploads/my-image/<?php echo $image ?>" />
<?php }
else { ?>
<img src="http://ВАШ_САЙТ/wp-content/uploads/my-image/defpreview.gif<?php echo $image ?>" alt="Изображение отсутствует"/>
<?php } ?>

Конечно применений произвольных полей гораздо больше, но эти три примера созданы для того чтобы показать принцип работы с ними.
Источник: Sonika's Blog

Если что то не понятно, не стесняйтесь спрашивать в комментариях, с удовольствием отвечу на все Ваши вопросы.

Рубрика: Учебник WordPress | 24 апреля 2009

Предыдущие записи из рубрики `Учебник WordPress`

11 комментариев

Аристарх, сегодня

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

ОтветитьОтветить
Евгений, 18.01.2010 в 10:50

У меня есть вопрос по произвольным полям. Задача: через произвольные поля вывести опросы (poll). В общем в нужном месте вставил код

Вроде как стал выводится блок с опросом, но теперь образовалась другая проблема, "поплыл" стиль оформления голосования.
Сейчас вот так: http://oprosy.russkaya.net/archives/198
Дожно быть вот так: http://oprosy.russkaya.net/archives/167

ОтветитьОтветить
Евгений, 18.01.2010 в 17:49

Пока камент одобрялся модером, я уже решил эту проблему. Всем спасибо.

ОтветитьОтветить
Deimos, 18.01.2010 в 20:01

Евгений, не за что 😀 Отличный сайт, хорошая идея с опросами 😉 Реализация тоже отличная - успехов в развитии проекта 😉

ОтветитьОтветить
Евгений, 18.01.2010 в 20:04

Спасибо большое, это мой первый проект, буду постоянно усовершенствовать. Скоро займусь дизайном, дабы уйти от стандартного шаблона. И каждодневное пополнение 🙂

ОтветитьОтветить
Robin, 19.06.2011 в 10:40

Спасибо огромное автору, я оочень долго искал, как мне решить одну задачу, с этим применением произвольных полей она решается идеально. Спасибо ещё раз!

ОтветитьОтветить
Константин, 11.07.2011 в 10:49

Добрый день.
Я начал использовать WP недавно, сразу с версии 3.2 может быть поэтому я не вижу в редакторе блока произвольных полей? или я что-то не активировал? буду благодарен за разъяснение)))

ОтветитьОтветить
Константин, 11.07.2011 в 11:38

Извините за предыдущий вопрос! Разобрался как вывести в WP блок произвольных полей)))

ОтветитьОтветить
kama, 11.07.2011 в 20:30

Константин, ничего страшного, бывает. Хорошо что сами разобрались.

ОтветитьОтветить
Алексей Викторович Сидорин, 24.07.2011 в 22:52

Очень интересная тема, тем более только начал изучать ВП. Меня интересует, как можно сделать на основе произвольных полей каталог фирм, чувствую что можно.
Нужные поля:
название фирмы
адрес
телефон
тел. моб
сайт
почта
описание фирмы

ОтветитьОтветить
Femil, 20.07.2014 в 04:58

Может подскажет кто... В общем, дело такое: есть пользовательский тип записи у которого каким-то образом отключены произвольные поля. Их можно как-то включить не залезая глубоко и надолго в код?..
Заранее спасибо за ответы...

ОтветитьОтветить

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