update_term_meta()

Обновляет метаданные термина
Функция WordPress
INT 4.4.0
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Обновление метаданных термина с указанием предыдущего значения
  4. Добавление новой метаданных термина без проверки предыдущего значения
  5. Удаление метаданных термина
  6. Получение значения метаданных термина
  7. Проверка наличия метаданных термина
  8. Обновление метаданных термина с проверкой предыдущего значения
  9. Вопросы и ответы
  10. Как обновить метаданные термина в WordPress?
  11. Как проверить, существует ли метаданные термина перед обновлением?
  12. Как удалить метаданные термина с помощью функции update_term_meta()?
  13. Как обновить только определенное значение метаданных термина?
  14. Как обработать ошибку при обновлении метаданных термина?
  15. Как использовать функцию update_term_meta() для обновления нескольких метаданных термина одновременно?
  16. Какие типы значений метаданных можно использовать с функцией update_term_meta()?
  17. Какие альтернативы функции update_term_meta() существуют в WordPress?
  18. Связанные элементы

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

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

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

update_term_meta( int $term_id, string $meta_key, mixed $meta_value, mixed $prev_value = '' ): int|bool|WP_Error

Функция update_term_meta() принимает следующие параметры:

  • $term_id (обязательный) — идентификатор термина, для которого нужно обновить метаданные.
  • $meta_key (обязательный) — ключ метаданных, который нужно обновить.
  • $meta_value (обязательный) — новое значение метаданных.
  • $prev_value (необязательный) — предыдущее значение метаданных, которое нужно проверить перед обновлением. Если указано, то будут обновлены только существующие записи метаданных с этим значением. По умолчанию: ».

Функция возвращает:

  • int — идентификатор метаданных, если ключ не существует.
  • true — в случае успешного обновления.
  • false — в случае неудачи или если переданное значение равно уже существующему в базе данных.
  • WP_Error — если $term_id неоднозначен для таксономий.
<?php
$term_id = 42;
$meta_key = 'my_meta_key';
$meta_value = 'my_meta_value';
// Обновление метаданных термина
$result = update_term_meta( $term_id, $meta_key, $meta_value );
if ( is_int( $result ) ) {
  echo 'Метаданные успешно обновлены. ID метаданных: ' . $result;
} elseif ( $result === true ) {
  echo 'Метаданные успешно обновлены.';
} elseif ( $result === false ) {
  echo 'Метаданные не обновлены или переданное значение уже существует в базе данных.';
} elseif ( is_wp_error( $result ) ) {
  echo 'Ошибка: ' . $result->get_error_message();
}
?>

В данном примере мы обновляем метаданные для термина с идентификатором 42. Мы указываем ключ метаданных my_meta_key и новое значение my_meta_value. После вызова функции update_term_meta() мы проверяем результат и выводим соответствующее сообщение.

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

Обновление метаданных термина с указанием предыдущего значения


$term_id = 42;
$meta_key = 'color';
$meta_value = 'red';
$prev_value = 'blue';
$result = update_term_meta( $term_id, $meta_key, $meta_value, $prev_value );
if ( is_wp_error( $result ) ) {
    echo 'Ошибка при обновлении метаданных термина: ' . $result->get_error_message();
} elseif ( false === $result ) {
    echo 'Метаданные термина не обновлены, так как предыдущее значение не совпадает с текущим.';
} else {
    echo 'Метаданные термина успешно обновлены.';
}

В данном примере мы обновляем метаданные термина с идентификатором 42. Ключ метаданных — ‘color’, а новое значение — ‘red’. При этом мы указываем предыдущее значение ‘blue’. Функция update_term_meta() вернет true, если обновление прошло успешно, false — если предыдущее значение совпадает с текущим или произошла ошибка, WP_Error — если идентификатор термина неоднозначен между таксономиями.

Добавление новой метаданных термина без проверки предыдущего значения


$term_id = 42;
$meta_key = 'color';
$meta_value = 'red';
$result = update_term_meta( $term_id, $meta_key, $meta_value );
if ( is_wp_error( $result ) ) {
    echo 'Ошибка при добавлении метаданных термина: ' . $result->get_error_message();
} elseif ( false === $result ) {
    echo 'Метаданные термина не добавлены.';
} else {
    echo 'Метаданные термина успешно добавлены.';
}

В этом примере мы добавляем новые метаданные термина с идентификатором 42. Ключ метаданных — ‘color’, а значение — ‘red’. Функция update_term_meta() вернет true, если добавление прошло успешно, false — если произошла ошибка, WP_Error — если идентификатор термина неоднозначен между таксономиями.

Удаление метаданных термина


$term_id = 42;
$meta_key = 'color';
$result = delete_term_meta( $term_id, $meta_key );
if ( is_wp_error( $result ) ) {
    echo 'Ошибка при удалении метаданных термина: ' . $result->get_error_message();
} elseif ( false === $result ) {
    echo 'Метаданные термина не удалены.';
} else {
    echo 'Метаданные термина успешно удалены.';
}

В данном примере мы удаляем метаданные термина с идентификатором 42 и ключом ‘color’. Функция delete_term_meta() вернет true, если удаление прошло успешно, false — если произошла ошибка, WP_Error — если идентификатор термина неоднозначен между таксономиями.

Получение значения метаданных термина


$term_id = 42;
$meta_key = 'color';
$meta_value = get_term_meta( $term_id, $meta_key, true );
if ( empty( $meta_value ) ) {
    echo 'Метаданные термина не найдены.';
} else {
    echo 'Значение метаданных термина: ' . $meta_value;
}

В этом примере мы получаем значение метаданных термина с идентификатором 42 и ключом ‘color’. Функция get_term_meta() вернет значение метаданных, если они найдены, или пустую строку, если метаданные не найдены.

Проверка наличия метаданных термина


$term_id = 42;
$meta_key = 'color';
$has_meta = metadata_exists( 'term', $term_id, $meta_key );
if ( $has_meta ) {
    echo 'Метаданные термина существуют.';
} else {
    echo 'Метаданные термина не существуют.';
}

В данном примере мы проверяем наличие метаданных термина с идентификатором 42 и ключом ‘color’. Функция metadata_exists() вернет true, если метаданные существуют, или false, если метаданные не существуют.

Обновление метаданных термина с проверкой предыдущего значения


$term_id = 42;
$meta_key = 'color';
$meta_value = 'red';
$prev_value = 'blue';
$result = update_term_meta( $term_id, $meta_key, $meta_value, $prev_value );
if ( is_wp_error( $result ) ) {
    echo 'Ошибка при обновлении метаданных термина: ' . $result->get_error_message();
} elseif ( false === $result ) {
    echo 'Метаданные термина не обновлены, так как предыдущее значение не совпадает с текущим.';
} else {
    echo 'Метаданные термина успешно обновлены.';
}

В этом примере мы обновляем метаданные термина с идентификатором 42. Ключ метаданных — ‘color’, а новое значение — ‘red’. При этом мы указываем предыдущее значение ‘blue’. Функция update_term_meta() вернет true, если обновление прошло успешно, false — если предыдущее значение совпадает с текущим или произошла ошибка, WP_Error — если идентификатор термина неоднозначен между таксономиями.

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

Как обновить метаданные термина в WordPress?

Для обновления метаданных термина в WordPress используется функция update_term_meta(). Она позволяет изменить значение метаданных для указанного термина.

Функция принимает следующие параметры:

  • $term_id — идентификатор термина, для которого нужно обновить метаданные;
  • $meta_key — ключ метаданных, которые нужно обновить;
  • $meta_value — новое значение метаданных;
  • $prev_value (опционально) — предыдущее значение метаданных, которое нужно проверить перед обновлением.

Функция возвращает:

  • int — идентификатор метаданных, если ключ не существовал;
  • true — в случае успешного обновления;
  • false — если значение, переданное в функцию, совпадает с уже существующим в базе данных;
  • WP_Error — если идентификатор термина неоднозначен между таксономиями.

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


$term_id = 42;
$meta_key = 'color';
$meta_value = 'red';
$result = update_term_meta( $term_id, $meta_key, $meta_value );
if ( is_wp_error( $result ) ) {
  echo $result->get_error_message();
} elseif ( $result ) {
  echo 'Метаданные успешно обновлены!';
} else {
  echo 'Значение уже существует в базе данных.';
}

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

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

Пример проверки существования метаданных перед обновлением:


$term_id = 42;
$meta_key = 'color';
$existing_value = get_term_meta( $term_id, $meta_key, true );
if ( $existing_value ) {
  // Метаданные существуют, выполняем обновление
  $new_value = 'blue';
  $result = update_term_meta( $term_id, $meta_key, $new_value, $existing_value );
} else {
  // Метаданные не существуют, выводим сообщение об ошибке
  echo 'Метаданные не найдены!';
}

Как удалить метаданные термина с помощью функции update_term_meta()?

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

Пример удаления метаданных термина:


$term_id = 42;
$meta_key = 'color';
$result = update_term_meta( $term_id, $meta_key, '' );
if ( $result ) {
  echo 'Метаданные успешно удалены!';
} else {
  echo 'Ошибка при удалении метаданных.';
}

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

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

Пример обновления только определенного значения метаданных:


$term_id = 42;
$meta_key = 'color';
$prev_value = 'red';
$new_value = 'blue';
$result = update_term_meta( $term_id, $meta_key, $new_value, $prev_value );
if ( is_wp_error( $result ) ) {
  echo $result->get_error_message();
} elseif ( $result ) {
  echo 'Значение метаданных успешно обновлено!';
} else {
  echo 'Предыдущее значение не совпадает или метаданные не найдены.';
}

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

При использовании функции update_term_meta() для обновления метаданных термина, может возникнуть ошибка. Для обработки ошибки можно использовать объект класса WP_Error. Если при обновлении метаданных возникла ошибка, функция вернет объект WP_Error, который содержит информацию об ошибке.


$term_id = 42;
$meta_key = 'color';
$meta_value = 'blue';
$result = update_term_meta($term_id, $meta_key, $meta_value);
if (is_wp_error($result)) {
    $error_message = $result->get_error_message();
    echo 'Ошибка при обновлении метаданных: ' . $error_message;
}

Как использовать функцию update_term_meta() для обновления нескольких метаданных термина одновременно?

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


$term_id = 42;
update_term_meta($term_id, 'color', 'blue');
update_term_meta($term_id, 'size', 'large');

Какие типы значений метаданных можно использовать с функцией update_term_meta()?

Функция update_term_meta() позволяет использовать различные типы значений для метаданных. В качестве значения можно передавать любой тип данных, который может быть сериализован, за исключением скалярных типов данных. Например, можно использовать строки, числа, массивы или объекты.


$term_id = 42;
update_term_meta($term_id, 'color', 'blue');
update_term_meta($term_id, 'price', 9.99);
update_term_meta($term_id, 'sizes', array('S', 'M', 'L'));

Какие альтернативы функции update_term_meta() существуют в WordPress?

В WordPress существуют альтернативные функции для работы с метаданными термина. Некоторые из них:

  • add_term_meta() — добавляет метаданные термина;
  • get_term_meta() — получает значение метаданных термина;
  • delete_term_meta() — удаляет метаданные термина.

Функция update_term_meta() в WordPress позволяет обновлять метаданные термина. Она принимает идентификатор термина, ключ метаданных, новое значение и предыдущее значение. Функция возвращает идентификатор метаданных, если ключ не существовал ранее, true в случае успешного обновления, false в случае неудачи или если переданное значение уже существует в базе данных. В случае неоднозначности идентификатора термина между таксономиями, функция вернет объект WP_Error.

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

  • Функция get_term_meta(): возвращает значение метаданных для указанного термина.
  • Функция delete_term_meta(): удаляет метаданные для указанного термина.
  • Класс WP_Term_Query: используется для выполнения запросов к терминам таксономий.
Обсуждение