Произвольные поля WordPress: понятие, использование, создание

Здесь я расскажу вам про произвольные поля, а именно: где данные поля отыскать в панели управления WordPress, где и как они используются, а также приведу список плагинов для работы с ними и для создания произвольных полей.

Скачать исходники для статьи можно ниже

Давайте начнем с того, где эти произвольные поля найти?

Произвольные поля можно создавать как к записям, так и к страничкам.

Блок произвольных полей можно увидеть, если зайти в панель управления вашим сайтом и выбрать в левом меню пункт “Записи” – подпункт “Добавить новую”, ищите его под текстовым редактором.

Для страничек, соответственно, нужно в панели управления вашим сайтом выбрать в левом меню выбрать пункт “Странички” – подпункт “Добавить новую”, блок произвольных полей также будет находится под текстовым редактором.

Блок произвольных полей выглядеть так:

произвольные поля

Если блок произвольных полей под текстовым редактором отсутствует, то вам нужно в правом верхнем углу найти кнопку “Настройка экрана”, нажать на нее и поставить в выпадающем блоке галочку напротив пункта “Произвольные поля”, после это блок с произвольными полями появиться.

произвольные поля в WordPress

Для чего нужны произвольные поля и как их использовать?

Произвольные поля дают нам свободу в организации и расположении информации на сайте и помогают выйти за пределы поля для написания/редактирования записи или странички (например можно разместить произвольные поля, принадлежащие какой-нибудь записи или странички, в боковой колонке, в шапке или в подвале блога).

Задача произвольного поля (custom field) очень простая – показать содержимое самого поля на сайте. Причем содержимым может быть практически, что угодно, как простой текст, так и сложный код.

Многие плагины используют функции произвольных полей.

Рассмотрим использование произвольных полей на примере плагина Post Ratings – данный плагин добавляет возможность посетителям вашего сайта голосовать за посты и показывает рейтинг в виде звездочек и количества проголосовавших.

произвольные поля

Так вот данный плагин для отображения данного рейтинга создает 2 произвольных поля (поле rating – это количество звездочек, которые окрашены в желтый цвет и поле votes – это количество проголосовавших посетителей).

произвольные поля в WordPress

Так вот самое интересное, что для каждой записи мы можем менять значение данных произвольных полей, то есть поставить сами количество звезд, которые будут окрашены желтым цветом, количество посетителей проголосовавшим на данной статье, для этого достаточно просто поменять циферки в поле значения и нажать кнопку “Обновить”. Все очень просто.

Подкорректировать значения с помощью произвольных полей можно и в плагине WordPress Popular Posts (отображает в сайдбаре виджет самых популярных, читаемых постов). Здесь создается произвольное поле со значением количества просмотров данной записи, странички посетителями, то есть можно поменять популярность определенных статьей.

То есть произвольные поля нужны нам для регулировки настроек плагинов.

Также произвольные поля применяются для вывод различного рода текстов для статей – автор, источник статьи, редакторы, используемая литература ну и любой другой текст, что теоретически может быть указан для поста. Зачем выводить текст, если можно добавить его в саму статью? – спросите вы. Все очень просто, с помощью произвольного поля вы сможете вывести его в любом месте шаблона, задав для него другое оформление.

Как это сделать?

Рассмотрим простой пример вывода текста с помощью произвольных полей.

Для этого заходим в панель управления вашим сайтом и выбираем какую-нибудь запись или страничку, с которой мы будем экспериментировать,  находим в ней блок произвольных полей, кликаем по ссылке «Добавить новое», вводим имя (ключ) – используем для этого только английские символы, а справа указываем значение поля, после чего нажимаем на кнопку «Добавить произвольное поле».

произвольные поля WordPress

Например, введем в имени произвольного поля avtor, а в его значении Иван Иванович.

произвольные поля

Нажимаем на кнопку “Добавить произвольное поле”.

Следующим шагом является вывод произвольного поля custom fields в нашем WordPress шаблоне. Для этого используем функцию get_post_meta($post_id, $key, $single). Переменные здесь обозначают:

  1. post_id – ID поста, из которого берутся произвольные поля. Чаще всего использует значение текущей статьи, поэтому параметр равен $post->ID.
  2. key – имя произвольного поля.
  3. single – установлен в true, если требуется вывести единичный результат в виде строки. Значение false используется для отображения всего массива данных с произвольными полями.  Чаще всего (в том числе и у нас в примере) используется true.

То есть теперь, там где мы хотим видеть наше произвольное поле (это может быть сама запись, шапка, боковая колонка, подвал), мы должны вставить вот такую строчку:

<?php echo (get_post_meta($post->ID, 'avtor', true)); ?>

Функция echo выводит текст в php.

Для этой строчки мы можем задать любое оформление (делать это не обязательно) с помощью тега div и присвоения ему какого-нибудь класс оформления, ну например:

<div id="ppole">
...
</div>

А в стилях (файл style.css) прописать для данного блока (тег div) например следующее:

#ppole {
color: #FFFFFF;
float: right;
font-size: 14px;
}

То есть задав ему белый цвет (FFFFFF – означает белый цвет, если у вас основной фон белый, то задайте ему другой цвет, например черный – 000000) и позиционирование с правой стороны (float: right), а также 14 размер шрифта.

Также перед данной строчкой можно написать, например: Автор статьи:.

Автор статьи:<?php echo (get_post_meta($post->ID, 'avtor', true)); ?>

На сайте это будет выглядеть: “Автор статьи: Иван Иванович”.

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

Представим, что нам его нужно вставить в запись, для этого в панели управления вашим сайтом выбираем в левом меню  пункт “Внешний вид” и подпункт “Редактор”, в правой колонке под названием “Шаблоны” выбираем single.php (у меня данный шаблон называется “Одиночная запись”), открываем его и вставляем данный код (советую его вставлять перед закрывающим тегом </div>, так будет более понятно в каком блоке будет располагаться надпись в контенте, в комментах, за комментариями и т.д.).

Если нам нужно вставить произвольное поле в подвале (футер), то нужно открыть в “Редакторе” шаблон footer.php и вставить в него код. Аналогично с другими частями сайта: шапка (хэдер) – шаблон header.php; боковая колонка (сайдбар) – sidebar.php.

После этого сохраняем шаблон и проверяем как работает наше произвольное поле – заходите на страницу или пост, где вы это поле добавили.

Для того, чтобы вывести данное произвольное поле для другой страницы или записи, вам нужно зайти в ее редактирование в панели управления (в левом меню выбираем “Все записи”, далее выбираем нужную нам запись и нажимаем на ссылку редактировать, аналогично со страничками) и найти под текстовым редактором блок с произвольными полями.

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

создание произвольных полей в WordPress

Введем например: Петр Петрович.  Далее нажимаем кнопку “Добавить произвольное поле”.

произвольные поля

Все теперь для этой записи или странички произвольное поле будет выводить текст: Петр Петрович.

Еще один пример использования произвольных полей  – это вывод картинки для поста. То есть для каждой статьи будут выводится картинки одинаковой ширины и высоты. Либо отображать рисунок, которого нет в тексте записи.

Как это сделать можно узнать по следующим ссылкам (достаточно много нюансов, а также существует несколько вариантов как это сделать):

http://prodengiblog.ru/archives/229

http://tods-blog.com.ua/wordpress/custom-fields/ (ищите в конце статьи)

Однако, для решения данной проблемы существую плагины для вставки миниатюр.

 Hungred Post Thumbnail – данный плагин есть на wordpress.org –  очень функциональны плагин и легок в использовании. С помощью него можно загрузить миниатюру для каждого поста прямо из панели управления, выбрать миниатюру по умолчанию, назначить миниатюры, которые будут отображаться в случайном порядке и др. Вид и размер отображаемых миниатюр так же можно назначить в панели управления вашим сайтом.

WP Post Thumbnаil про использование данного плагина можете прочитать статью:  http://blog-wp.ru/plagin-wp-post-thumbnail/

Также существуют и другие альтернативы: WP Choose Thumb, Simple Post Thumbnails  и пр.

(Если вас затронула тема миниатюр то прочитайте следующую ссылку: http://web2.0blog.ru/vsyo-o-miniatyurax-v-wordpress.php)

Вообще вариантов использования произвольных полей множество, как пример могу порекомендовать следующую ссылку: http://www.sonika.ru/blog/wordpress/custom-fields-wordpress.htm

Здесь мне всех больше понравились следующие примеры с использованием произвольных полей:

Пример 8: Каждой одиночной записи — своя шапка, или картинка в боковой колонке или что угодно!

Пример 17: Выводим что-либо в зависимости от значения определенного ключа custom field

Пример 12: Сортировка записей в соответствии со значением определенного ключа custom fields.

Так же существуют плагины для создания произвольных полей.

– Custom Field Template

http://www.sonika.ru/blog/wordpress/custom-fields-wordpress.htm

– «MaxSite — Произвольные поля»

и другие.

PS: Если хотите отобразить произвольное поле только для зарегистрированных пользователей используйте следующий код:

<div id="ppole">

<?php
if ( is_user_logged_in() ) {
    echo 'Автор статьи: ';
    echo (get_post_meta($post->ID, 'avtor', true));
} else {
    echo 'здесь можете написать, что увидят незарегистрированные пользователи';
}
?>
</div>

или, если вы не хотите, чтобы что-либо выводилось для незарегистрированных пользователей, а также не хотите вывода слов “Автор статьи”, то используйте следующий код:

<div id="ppole">

<?php
if ( is_user_logged_in() ) {
echo (get_post_meta($post->ID, 'avtor', true));
}
?>
</div>

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Произвольные поля WordPress: понятие, использование, создание: 26 комментариев

    1. Константин

      сamel7, спасибо за вопрос.
      Информацией о том, как отобразить произвольное поле только для зарегистрированных пользователей, смотрите в конце статьи (в PS).

  1. виктор

    спасибо автору!!!! я так долго искал куча лефой информации о использованни но только у вас нашел картинку где же всетаки включается это “блин” поле!!! спс

  2. Саша

    Такая проблема – использую поле с именем
    DLINK
    и значением “any_site.com”
    в виджете с поддершкой php вставляю следующее

    <a href="ID, ‘DLINK’, true);
    if ($DL==null) $DL= ‘none’;
    print ($DL); ?>”>DOW

    в результате получаю ссилку
    “blog/post/none”
    почему ??

  3. Саша

    Возник другой вопрос: Как настроить использование уже сезданных полей для некоторых ролей ??
    К примеру, чтобы пользователь с ролью “Jorn” мог использовать но не мог создавать произвольные поля ???

  4. GEF

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

  5. Регина

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

  6. Фаина

    Здравствуйте! Подскажите пожалуйста, есть настроенные произвольные поля на WP, но они отображаются на одной странице, можно ли сделать так, чтобы эти поля отображались автоматически на всех страницах сайта?

Добавить комментарий для Дмитрий Отменить ответ