Пользовательские поля WordPress

Ромчик
0

wordpressДоброго времени. Очень часто в WordPress нам не хватает дополнительных полей. Например, при лендинге мы хотим из админки менять номер телефона. И многие за помощью отправляются к плагином. А ведь WordPress обладает встроенным функционалом создания пользовательских полей. Дальше мы рассмотрим, как создать пользовательское поле в WordPress, как отобразить его в теме WordPress, а также рассмотрим несколько хитростей для работы с дополнительными полями.

Первое, что нужно понять: Что же такое пользовательские поля в WordPress.

Что такое пользовательские поля WordPress?

Пользовательские поля WordPress представляют собой метаданные, которые используются для добавления дополнительной информации, относящейся к сообщению или странице, например,  номер телефона, имя автора, дата / время и т. д.

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

Вторая часть — это информация об этом конкретном контенте. Например, название, автор, дата, время и т. д. Эта информация и называется метаданными.

WordPress автоматически добавляет все необходимые метаданные к каждому сообщению или странице, которую вы создаете. WordPress также позволяет пользователям сохранять свои собственные метаданные с помощью настраиваемых полей.
По умолчанию опция настраиваемых полей скрыта на экране редактирования сообщений. Чтобы просмотреть его, вам нужно нажать кнопку «Параметры экрана» вверху.

Отображение редактора дополнительных полей WordPress

А затем включить опцию настраиваемых полей.

Включение настраиваемых полей

Теперь мы увидим область «Произвольные поля» под редактором:

Пользовательские поля

Добавление пользовательских полей в WordPress

Для добавления пользовательского поля необходимо выбрать из списка или нажать «Введите новое» и добавить новое имя поля. Затем добавить значение этого поля.

Добавление кастомного поля в WordPress

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

После необходимо нажать «Добавить произвольное поле» и обновить или опубликовать наше сообщение.

Мы с вами добавили кастомное поле. Теперь при добавлении нового сообщения (страница, запись в блог) мы уже из списка можем выбрать данное поле.

новый пост

Но наше поле не отображается.

Отображение пользовательских полей в WordPress

Чтобы отобразить пользовательское поле на сайте, нам нужно отредактировать файлы темы WordPress.

Если Вы не знаете, как выводятся посты в WordPress, то прочтите статью на этом блоге «Создание темы для WordPress. Часть 3. Вывод постов»
Теперь внутрь цикла:


<?php while ( have_posts() ) : the_post(); ?>

…

<?php endwhile; // end of the loop. ?>

Нужно вставить следующий код:


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

Где key – это имя нашего поля. В моем случае:


echo "Phone: ".get_post_meta($post->ID, 'phone', true);

Редактирование темы WordPress

Давайте посмотрим, что получилось

Отображение пользовательского поля в теме WordPress

Наше поле отображается.

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

Скрыть пустые пользовательские поля

Если дополнительное поле пустое, то давайте его скроем. Для этого необходимо добавить следующий код:


<?php
$phone = get_post_meta($post->ID, 'phone', true);
if ($phone) { ?>
<p>Телефон: <? echo $phone; ?></p>
<?php
} else {

// do nothing;

}

?>

Помните, ключ phone заменяем на название поля.

Добавление нескольких значений в пользовательское поле

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

Однако код, в приведенных выше примерах, сможет отображать только одно значение.

Чтобы отобразить все значения настраиваемого поля, нам нужно изменить код и заставить его возвращать данные в массиве. Для этого меняем код:


<?php

$phone = get_post_meta($post->ID, 'phone', false);

if( count( $phone) != 0 ) { ?>

<p>Телефон:</p>

<ul>

<?php foreach($phone as $p) {

echo '<li>'.$p.'</li>';

}

?>

</ul>

<?php

} else {

// do nothing;

}

?>

Ключ phone меняем на название поля.
В этом примере мы изменили последний параметр функции get_post_meta на false. Этот параметр определяет, должна ли функция возвращать одно значение или нет. Установка его в значение false позволяет вернуть данные в виде массива, который затем отображается в цикле foreach.

Отображать пользовательские поля за пределами цикла в WordPress

Чтобы отобразить пользовательские поля вне цикла WordPress, добавьте следующий код:


<?php

global $wp_query;

$postid = $wp_query->post->ID;

echo get_post_meta($postid, 'key', true);

wp_reset_query();

?>

Вот и все.

Заключение.

Мы с вами рассмотрели:

  • как в WordPress можно добавлять свои поля
  • как отображать дополнительные поля в теме WordPress
  • как скрыть кастомное поле, если оно пустое
  • как добавить и отобразить несколько значений пользовательских полей
  • как отображать свои поля за пределом цикла loop
Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger

©2012-2018 По всем вопросам обращайтесь через форму обратной связи

Яндекс.Метрика