Произвольные пользовательские поля - wordpress custom fields

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

Добрый день дорогие читатели блога Help-WP.ru, сегодня хочу поговорить с вами об одном из самых сильных инструментов ВП: wordpress custom fields (произвольные они же пользовательские поля). Сustom field в вордпрес появились с самых первых версий и служили для записи разного рода информации в нужные блоки. Самым простым примером как использовать произвольные поля wordpress, есть возможность указать класс для body через пользовательское поле, но это цветочки, ведь через них можно задавать цены, артикулы, сопутствующею информацию и многое другое.

WordPress custom fields - это по сути текстовое поле (в базе mySQL таблица wp_postmeta), в которое можно записать любую информацию. Через это поле можно присвоить для поста или страницы:

  • изображение;
  • прицепить какой нибудь файл (например прайс);
  • хтмл текст;
  • идентификатор объекта записи;
  • массив данных;
  • задать произвольные заголовки, ссылки и многое другое.

Как вы поняли, механизм custom field wordpress - это область для развития плагинов, дополнений, задания настроек для специфических страниц. Произвольные поля wordpress это тот функционал WP, без которого он бы не смог достичь такого распостранение среди пользовательских CMS.

Навигация по странице:

  1. функции для wordpress custom fields
  2. произвольные поля в комментариях
  3. сustom field для пользователей
  4. удалить произвольные поля wordpress
  5. плагин для произвольных полей

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

таблицы для wordpress custom fields

Произвольные поля wordpress для комментариев и для пользователей позволяют:

  • задавать расширенную информацию;
  • присваивать изображения и собственные аватары (хотя для этого есть другой механизм);
  • указывать расширенные права;
  • присваивать любые данные комментарию или пльзователю.

Функции для получения wordpress custom fields

к менюСамой основной функцией чтоб получить произвольное поле у записи/поста есть get_post_meta().

get_post_meta($post_id, $key, $single); - возвращает строку или распакованный массив в зависимости от данных и параметра $single.

$post_id - идентификатор поста, произвольное поле которого мы будем получать.

$key - имя произвольного поля, которое нам нужно получить.

$single - (true / false), если в базе записанная строка, то true выведет ее без изменений. Если указать false или упустить этот параметр, то значения будут в виде массива. Если в базе записан серриализированный массив, то значение true вернет нормальный массив, а false вернет массив у которого в значении [0] будет хранится серриализированный массив в виде строки.

 Пример использования:

<?php $my_key_value = get_post_meta($post->ID, 'my_key', true); // $post->ID - переменная с текущим ИД поста. Можно указать просто число ?>

Вторая функция: get_post_custom() - она позволяет получить многомерный массив с данными всех произвольных полей для текущего поста.

get_post_custom( $post_id ); - возвращает многомерный массив.

$post_id - идентификатор поста, произвольные поля которого мы будем получать.

 

Если вам нужно добавить / сохранить произвольное поле для поста, вы можете сделать это из админки или же воспользоваться функцией: add_post_meta($post_id, $meta_key, $meta_value, $unique)

Параметры add_post_meta Тип данных Описание
$post_id  целое число  Идентификатор поста или страницы, к которому мы сохраняем wordpress custom field
 $meta_key  строка  имя произвольного поля
 $meta_value  строка  значение произвольного поля
$unique логический (true / false) при true, поле будет добавлено лишь в том случае если такого custom field еще нет. Если false - будет добавлено в любом случае и может возникнуть ситуация, когда будет 2, 3, 4 поля с одинаковыми именами.

Вид таблицы mySQL, где хранятся произвольные поля вордпресс:

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

Произвольные поля в комментариях

к менюДля получения данных с произвольных полей комментария можно воспользоваться волшебной функцией get_comment_meta(). Работает она аналогично описанной выше функции get_post_meta.

get_comment_meta( $comment_id, $key, $single ); - возвращает запрашиваемое мета поле в виде строки или массива.

$comment_id - ИД комментария, мета поле которого нужно получить.

$key - имя произвольного поля комментария, которое нам нужно получить.

$single - (true / false) смотрите по аналогии с get_post_meta.

 

Если вам нужно зарегистрировать или добавить, или сохранить wordpress custom fields для комментариев можно использовать функцию update_comment_meta( $comment_id, $meta_key, $meta_value, $prev_value ) - она позволяет добавить мета поле если его нет или обновить если оно существует.

Параметры update_comment_meta Тип данных Описание
$comment_id  целое число  Идентификатор комментария, для которого мы сохраняем custom field
 $meta_key  строка  имя произвольного поля
 $meta_value  строка  значение произвольного поля
$prev_value строка старое значение ключа. Используется в том случае, если у одного комментария несколько одинаковых полей

 

Сustom field wordpress для пользователей / users

к менюДля работы с мета полями пользователей существует много разных функций, но сейчас мы говорим о получении произвольного поля пользователя. Делается это функцией get_user_meta( $user_id, $key, $single ); - все параметры аналогичны тем что я описывал для постов и комментариев.

Если вам нужно добавить / сохранить произвольное поле для пользователя, вы можете воспользоваться функцией add_user_meta( $user_id, $meta_key, $meta_value, $unique ).

Параметры add_user_meta Тип данных Описание
 $user_id  целое число Идентификатор пользователя, информацию о котором мы сохраняем
 $meta_key  строка  имя произвольного поля
 $meta_value  строка  значение произвольного поля
$unique логический (true / false) при true, поле будет добавлено лишь в том случае если оно не существует. Если false - будет добавлено поле в любом случае и может возникнуть ситуация, когда будет 2 поля с одинаковыми именами.

 

Как удалить произвольные поля wordpress

к менюЕсли есть возможность создать произвольные поля значит должна быть предусмотренная функция их удаления.

Для удаления custom fields у постов нужно воспользоваться функцией delete_post_meta($post_id, $key, $value)

Параметры delete_post_meta Тип данных Описание
$post_id  целое число идентификатор поста, у которого нужно удалить произвольные поля
$key  строка имя произвольного поля
$value  строка значение произвольного поля (не обязательно)

 

Для того, чтобы удалить произвольные поля WordPress у пользователей нужно использовать функцию delete_user_meta( $user_id, $meta_key, $meta_value ) - ее параметры аналогичны описанной выше функции для постов delete_post_meta.

 

Для удаления wordpress custom fields у комментариев существует функция delete_comment_meta( $comment_id, $meta_key, $meta_value ). Я думаю вы не удивитесь, если я скажу что настройки для этой функции идентичны тем что я описывал для двух функций выше, только вместо ИД поста нужно подставлять идентификатор комментария.

 

Это не все функции для работы с custom fields у WordPress, но и их вполне достаточно для того, чтобы создать красивый сайт с множеством настроек, например для создания каталога с ценами и артиклами товаром, или же красивого слайдера у каждой страницы.

 

Плагины произвольные поля wordpress

к менюadvanced custom fields wordpressОдним из самых ярких плагинов для работы с произвольными полями в ВП есть Advanced Custom Fields. Он позволяет делать множиство разных полей и навешивать их строго на нужный шаблон, пост, категорию или все одновременно. Вы только посмотрите на эти скриншоты и вам станет все понятно:

плагин произвольные поля wordpress
плагин wordpress custom fields
ACF пользовательские поля

Плагин умеет рабоать не только с простыми типами данных, такими как изображение, текст, файлы, но и с объектами, датами, гугл картами, ВП редактором. Также он умеет понимать права пользователей и в зависимости от этого показывать разные настройки. Более подробно этот плагин я опишу в следующих постах. Скачать плагин можно здесь: Получить ссылку на (ACF)

 

к менюНа этом все, надеюсь иноформация о произвольных полях и wordpress custom fields была для вас полезной. Счастливо!

Комментарии к записи «Произвольные пользовательские поля - wordpress custom fields»:
  1. Стас:

    Знал что у wordpress есть произвольные поля custom fields, но использовать было не сильно удобно. Мне как разработчику еще терпимо, а вот заказчики постоянно нос воротили, мол не удобно в списке искать нужное поле. Да и описание только на английском. Сейчас тестирую этот ваш ACF довольно мощная хренотень. И описание на кириллице хавает

Сделать заказ
Онлайн помощь по WordPress