add_post_meta()

Добавляет метаданные к указанной записи
Функция WordPress
INT 1.5.0
WordPress Icon

Описание функции

Функция add_post_meta() используется для добавления мета-поля к указанному посту в WordPress. Мета-поля представляют собой дополнительные данные, которые можно привязать к посту и использовать для хранения дополнительной информации.

Мета-поля могут быть использованы для различных целей, таких как хранение пользовательских данных, настройки поста, SEO-метаданных и других данных, которые не входят в стандартные поля поста.

Функция add_post_meta() позволяет добавить новое мета-поле к посту или обновить существующее значение мета-поля, если оно уже существует.

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

add_post_meta( int $post_id, string $meta_key, mixed $meta_value, bool $unique = false ): int|false

Функция add_post_meta() принимает четыре параметра:

  • $post_id (обязательный) — идентификатор поста, к которому нужно добавить мета-поле.
  • $meta_key (обязательный) — название мета-поля.
  • $meta_value (обязательный) — значение мета-поля. Должно быть сериализуемым, если не является скалярным.
  • $unique (необязательный) — указывает, должно ли быть уникальное значение для данного мета-поля. По умолчанию: false.

Функция add_post_meta() возвращает идентификатор мета-поля в случае успеха или false в случае ошибки.

<?php
// Идентификатор поста
$post_id = 123;
// Название мета-поля
$meta_key = 'my_meta_field';
// Значение мета-поля
$meta_value = 'Hello, World!';
// Добавление мета-поля к посту
$result = add_post_meta( $post_id, $meta_key, $meta_value );
if ( $result ) {
    echo 'Мета-поле успешно добавлено!';
} else {
    echo 'Ошибка при добавлении мета-поля.';
}
?>

В этом примере мы добавляем мета-поле с названием «my_meta_field» и значением «Hello, World!» к посту с идентификатором 123. Если добавление прошло успешно, выводится сообщение «Мета-поле успешно добавлено!». В противном случае выводится сообщение об ошибке.

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

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


$post_id = 123; // ID поста, к которому добавляем мета поле
$meta_key = 'my_meta_key'; // Название мета поля
$meta_value = 'my_meta_value'; // Значение мета поля
$result = add_post_meta( $post_id, $meta_key, $meta_value );
if ( $result ) {
    echo 'Мета поле успешно добавлено.';
} else {
    echo 'Ошибка при добавлении мета поля.';
}

В данном примере мы добавляем мета поле с названием ‘my_meta_key’ и значением ‘my_meta_value’ к посту с ID 123. Функция add_post_meta() возвращает ID мета поля при успешном добавлении или false в случае ошибки.

Изменение значения мета поля


$post_id = 123; // ID поста, у которого изменяем мета поле
$meta_key = 'my_meta_key'; // Название мета поля
$meta_value = 'new_meta_value'; // Новое значение мета поля
$result = update_post_meta( $post_id, $meta_key, $meta_value );
if ( $result ) {
    echo 'Значение мета поля успешно изменено.';
} else {
    echo 'Ошибка при изменении значения мета поля.';
}

В данном примере мы изменяем значение мета поля с названием ‘my_meta_key’ у поста с ID 123 на ‘new_meta_value’. Функция update_post_meta() возвращает true при успешном изменении значения или false в случае ошибки.

Получение значения мета поля


$post_id = 123; // ID поста, у которого получаем мета поле
$meta_key = 'my_meta_key'; // Название мета поля
$meta_value = get_post_meta( $post_id, $meta_key, true );
if ( $meta_value ) {
    echo 'Значение мета поля: ' . $meta_value;
} else {
    echo 'Мета поле не найдено.';
}

В данном примере мы получаем значение мета поля с названием ‘my_meta_key’ у поста с ID 123. Функция get_post_meta() возвращает значение мета поля или false, если мета поле не найдено.

Удаление мета поля


$post_id = 123; // ID поста, у которого удаляем мета поле
$meta_key = 'my_meta_key'; // Название мета поля
$result = delete_post_meta( $post_id, $meta_key );
if ( $result ) {
    echo 'Мета поле успешно удалено.';
} else {
    echo 'Ошибка при удалении мета поля.';
}

В данном примере мы удаляем мета поле с названием ‘my_meta_key’ у поста с ID 123. Функция delete_post_meta() возвращает true при успешном удалении или false в случае ошибки.

Проверка наличия мета поля


$post_id = 123; // ID поста, у которого проверяем наличие мета поля
$meta_key = 'my_meta_key'; // Название мета поля
$has_meta = metadata_exists( 'post', $post_id, $meta_key );
if ( $has_meta ) {
    echo 'Мета поле существует.';
} else {
    echo 'Мета поле не существует.';
}

В данном примере мы проверяем наличие мета поля с названием ‘my_meta_key’ у поста с ID 123. Функция metadata_exists() возвращает true, если мета поле существует, или false, если мета поле не существует.

Вопросы и ответы

Как добавить мета поле к посту?

Для добавления мета поля к посту в WordPress используется функция add_post_meta(). Она принимает несколько параметров: $post_id (ID поста), $meta_key (имя мета поля), $meta_value (значение мета поля) и необязательный параметр $unique (определяет, должно ли быть уникальное значение).

Пример использования функции add_post_meta():


$post_id = 123;
$meta_key = 'my_meta_field';
$meta_value = 'Hello, WordPress!';
add_post_meta( $post_id, $meta_key, $meta_value );

Как проверить, существует ли уже мета поле с таким ключом?

Для проверки существования мета поля с определенным ключом в WordPress можно использовать функцию metadata_exists(). Она принимает два параметра: $post_type (тип поста) и $meta_key (имя мета поля).

Пример использования функции metadata_exists():


$post_type = 'post';
$meta_key = 'my_meta_field';
if ( metadata_exists( $post_type, $meta_key ) ) {
    echo 'Мета поле с ключом ' . $meta_key . ' уже существует.';
} else {
    echo 'Мета поле с ключом ' . $meta_key . ' не существует.';
}

Как обновить значение мета поля?

Для обновления значения мета поля в WordPress используется функция update_post_meta(). Она принимает те же параметры, что и функция add_post_meta(): $post_id (ID поста), $meta_key (имя мета поля) и $meta_value (новое значение мета поля).

Пример использования функции update_post_meta():


$post_id = 123;
$meta_key = 'my_meta_field';
$new_meta_value = 'New value';
update_post_meta( $post_id, $meta_key, $new_meta_value );

Как удалить мета поле?

Для удаления мета поля из поста в WordPress используется функция delete_post_meta(). Она принимает те же параметры, что и функция add_post_meta(): $post_id (ID поста) и $meta_key (имя мета поля).

Пример использования функции delete_post_meta():


$post_id = 123;
$meta_key = 'my_meta_field';
delete_post_meta( $post_id, $meta_key );

Как получить значение мета поля?

Для получения значения мета поля используется функция get_post_meta(). Она принимает два обязательных параметра: идентификатор поста $post_id и название мета поля $meta_key. Функция возвращает массив значений мета поля.


$post_id = 123;
$meta_key = 'my_meta_field';
$meta_values = get_post_meta( $post_id, $meta_key );

Как добавить уникальное мета поле?

Для добавления уникального мета поля используется параметр $unique функции add_post_meta(). Если значение параметра установлено в true, то мета поле будет добавлено только в том случае, если мета поле с таким же названием и значением не существует.


$post_id = 123;
$meta_key = 'my_meta_field';
$meta_value = 'my_meta_value';
$meta_id = add_post_meta( $post_id, $meta_key, $meta_value, true );

Как добавить несериализуемое значение в мета поле?

Для добавления несериализуемого значения в мета поле необходимо убедиться, что значение может быть сериализовано. Если значение является объектом или массивом, оно должно быть преобразовано в строку с помощью функции serialize().


$post_id = 123;
$meta_key = 'my_meta_field';
$meta_value = array( 'value1', 'value2' );
$meta_id = add_post_meta( $post_id, $meta_key, serialize( $meta_value ) );

Как добавить мета поле к нескольким постам одновременно?

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


$posts = array( 123, 456, 789 );
$meta_key = 'my_meta_field';
$meta_value = 'my_meta_value';
foreach ( $posts as $post_id ) {
    add_post_meta( $post_id, $meta_key, $meta_value );
}

Функция add_post_meta() позволяет добавлять мета поля к постам в WordPress. Она принимает идентификатор поста, название мета поля и значение мета поля. При необходимости можно указать, что мета поле должно быть уникальным или преобразовать несериализуемое значение в строку. Для получения значения мета поля используется функция get_post_meta(). Для добавления мета поля к нескольким постам одновременно можно использовать цикл.

Связанные элементы

  • Функция update_post_meta(): обновляет значение указанного метаполя для указанного поста.
  • Функция delete_post_meta(): удаляет указанное метаполе из указанного поста.
  • Функция get_post_meta(): возвращает значение указанного метаполя для указанного поста.
  • Функция get_post_custom(): возвращает все метаполя для указанного поста.
  • Функция get_post_custom_keys(): возвращает все ключи метаполей для указанного поста.
Обсуждение