Вверх

Введение в «Пользовательские поля» WordPress

На этом сайте вам встретится множество примеров кода, так или иначе относящихся к post meta, или «пользовательским полям». Несомненно, вы видели фрагменты с вызовом функций типа get_post_meta( $post_id, $meta_key, true ) или update_post_meta( $post_id, $meta_key, $new_value), но, возможно, это не привело вас к понимаю того, как работает WordPress в этих случаях.

Скорее всего, вы также слышали, что у WordPress есть что-то, что называют «пользовательские поля». На сайте WordPress Codex в отношении этих полей говорится следующее: «Эта произвольным образом выбранная дополнительная информация называется мета-данными». Таким образом, как вы, возможно, догадались, пользовательские поля, post meta, и мета-данные в WordPress означают одно и то же. Эта дополнительная информация сохраняется в объекте поста в WordPress и связывается с ID поста.

Post Meta работает одинаково для всех объектов поста в WordPress. Это означает, что мы можем хранить и использовать эту функцию для страниц или пользовательских типов записей точно так же, как и для настоящих постов.

Какие же типы информации мы можем или должны хранить в качестве пользовательских полей? Короткий ответ: практически какие угодно. В кодексе WordPress используются следующие примеры:

Настроение: Счастливый

Текущее чтение: Золушка

Музыка: Rock Around the Clock

Погода: Жарко и сыро

Можно хранить и такую информацию:

Фоновый цвет записи: #FF0000

Подзаголовок: Подзаголовок для моей записи

Показывать ссылки на социальные ресурсы?: да

Типы информации, которую вы можете хранить таким образом, практически безграничны. Тем не менее, если вы планируете хранить информацию с разбивкой по категориям и не хотите использовать встроенные Категории или Метки, возможно, вам стоит отказаться от пользовательских полей и добавить вместо этого собственную настраиваемую классификацию.

Если вы добавите (временно) следующий фрагмент кода в ваш файл functions.php, вы сможете увидеть ВСЕ пользовательские мета-данные, ассоциированные с конкретной записью, со страницы редактора записей.

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

  1. Это пользовательское поле ‘ключ’. Оно является идентификатором для части (или нескольких частей, — мы вернемся к этому позже) информации. С этого момента я буду ссылаться на него как на $meta_key. Вы будете использовать этот $meta_key в различных функциях:
    1. get_post_meta( $post_id, $meta_key, true ). На фрагменте сверху мы использовали get_post_meta только с одним параметром $post_id, но в общем случае вам понадобится передавать также параметры $meta_key и $single. Я объясню поподробнее в п.3
    2. update_post_meta( $post_id, $meta_key, $new_value )
    3. add_post_meta( $post_id, $meta_key, $meta_value, $unique )
  2. Нижнее подчеркивание в начале этих двух метаключей говорит WordPress, что они скрыты, т.е. что они не появятся в стандартном редакторе пользовательских полей. Два примера на скриншоте выше – это два поля с метаданными, которые WordPress хранит для фичи Ревизии.
  3. Это строка для значения поля, которое вы проверяете
  4. Сейчас вы видите значение только с одним рядом, но существует возможность добавить несколько рядов значений с помощью функции add_post_meta. Это редко используется, но может быть достаточно удобной вещью для сложных запросов, что находится за пределами темы данной статьи. Используя функцию get_post_meta, вы должны прописать третьему параметру значение «true», чтобы получить единичное значение. В нашем примере это «Пример пользовательского поля[F1] ». Если вы этого не сделаете,  WordPress выдаст вам по умолчанию все строки в массиве, и вам придется самостоятельно отделять значения, которые вам нужны. Еще раз, это крайне редкий случай, когда вам потребуется опустить (или задать значение «false») этому третьему параметру.

ОК! В этой статье мы достаточно тщательно разобрали функцию get_post_meta. В следующей статье мы продолжим тему пользовательских полей, рассмотрев подробно функции update_post_meta и add_post_meta. Если какие-то места вам все еще кажутся не совсем понятными, не стесняйтесь оставить комментарий об этом!

* Существует множество плагинов и библиотек, позволяющих создать пользовательские поля и метабоксы. Один из примеров – это Advanced Custom Fields, а пример библиотеки — Custom Metaboxes and Fields.

Это первая статья из серии в 5 статей.


 [F1]‘sample field value’ заменить в коде на «Пример пользовательского поля», или наоборот

1 бал2 бала3 бала4 бала5 балов (Рейтинга нету)
Загрузка...
     Вызвать мастера :)
Скопировать короткую ссылку

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: