Что такое 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`

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

Аристарх, 14.01.2010 в 11:17

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

ОтветитьОтветить
Евгений, 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

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

ОтветитьОтветить
Алексей Викторович Сидорин, сегодня

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

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

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

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

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