WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Справочник по функциям/add post meta

Описание

add_post_meta добавляет произвольные_поля в указанную запись, страницу или другой тип документа.

Если параметру $unique задать значение true и поле с указанным ключом уже существует, функция вернёт false и не произведёт изменений; в противном случае возвращается true.

Использование

 <?php add_post_meta($post_id$meta_key$meta_value$unique); ?> 

Параметры

$post_id
(integer) (required) ID записи, к которой нужно добавить произвольное поле.
Default: None
$meta_key
(string) (required) Ключ (название) произвольного поля, которое будет добавлено.
Default: None
$meta_value
(mixed) (required) Значение произвольного поля, которое будет добавлено. Массив будет преобразован в строку.
Default: None
$unique
(boolean) (optional) Указывает, должно ли поле быть уникальным. Если указать значение true, при добавлении поля, сначала будет проверяться существует ли уже поле с таким $meta_key, и если существует, то поле не будет добавлено.
Default: false

Примеры

По умолчанию

<?php add_post_meta(68, 'my_key', 47); ?>

Добавить или обновить уникальное поле

Добавляет произвольное поле, если такое поле ещё не существует или обновляет существующее. Примечание: если четвёртому параметру add_post_meta установить значение true, то поле не будет обновлено, если оно уже существует (проверено на версии WP 2.6.2). Рекомендуется использовать if (!update_post_meta(...)) add_post_meta(...).

 <?php add_post_meta(7, 'fruit', 'banana', true) or update_post_meta(7, 'fruit', 'banana'); ?>

Другие примеры

Что перед добавлением поля "my_key" убедиться, что оно ещё не существует, следуетиспользовать такой вариант:

<?php add_post_meta(68, 'my_key', '47', true); ?>

Добавить несколько значений полю "my_key" можно следующим образом:

<?php add_post_meta(68, 'my_key', '47'); ?>
<?php add_post_meta(68, 'my_key', '682'); ?>
<?php add_post_meta(68, 'my_key', 'The quick, brown fox jumped over the lazy dog.'); ?>
...

Больше подробных примеров можно найти на странице post_meta Functions Examples.

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

Если вы разработчик и вам нужно создать произвольное поле, которое не будет видно пользователям, но при этом будет работать как обычное произвольное поле, то знайте что WordPress не показывает произвольные поля начинающиеся с "_" (нижнего подчеркивания). Не показывает значит, что они игнорируются на странице редактирования постов или при использовании функции шаблона the_meta().

Поэтому, если нужно вдруг нужно спрятать произвольное поле, то нужно создавать поле с ключом начинающимся с "_", например:

<?php add_post_meta(68, '_color', 'red', true); ?>

добавит уникальное произвольное поле _color со значением red и это поле не будет выводится в админке на странице редактирования постов/постоянных страниц.

Кроме того, если $meta_value является массивом, оно не будет отображаться на странице редактирования записи или страницы.

Исходный файл

add_post_meta() объявляется в wp-includes/post.php

История изменений

Схожее

Custom Fields: the_meta(), get_post_meta(), add_post_meta(), update_post_meta(), delete_post_meta(), get_post_custom(), get_post_custom_values(), get_post_custom_keys() (See Also: post_meta Function Examples)

See also index of Function Reference and index of Template Tags.