update_term_meta()
Оновлює метадані елемента таксономії (категорії, мітки…).
Використовуйте параметр $prev_value
, щоб оновити вже існуючі значення, коли є кілька полів з однаковим ключем.
Якщо до моменту виклику функції поле ще не існує, воно буде додано.
Назва таксономії не передається функції, тому кожен термін має унікальний ID ($term_id) і прив’язаний до конкретної таксономії.
Хуків немає.
Повертає
int|true|false|WP_Error
. Поверне:
ID
якщо ключ не існував раніше, і поле було додано.true
при успішному оновленні існуючого поля.WP_Error
у разі неправильно заданого term_id таксономії.False
у разі помилки у процесі оновлення.
Використання
update_term_meta($term_id, $meta_key, $meta_value, $prev_value);
-
$term_id
(число) (обов’язковий) - ID елемент таксономії.
-
$meta_key
(рядок) (обов’язковий) - Ключ поля.
-
$meta_value
(змішаний) (обов’язковий) - Значення поля, яке потрібно записати.
-
$prev_value
(змішаний) -
Попереднє значення. Потрібне оновлення конкретного поля, коли існує кілька полів з однаковим ключем.
За замовчуванням: ”
Приклади
#1 Задаємо невеликий текст для мітки посту та виводимо на сторінці міток
Задаємо текст ‘Привіт світ’ для мітки з ID 702 і зберігаємо в полі з ключем test_meta_field
.
update_term_meta(702, 'test_meta_field', 'Привіт світ');
І виводимо на сторінці тегів
$fields = get_term_meta(get_query_var('tag_id'), 'test_meta_field'); if( $fields && is_array( $fields ) ){ echo $fields[0]; }
#2 Декілька метаполів з однаковим ключем
Додаємо кілька полів з однаковим ключем:
// додаємо дані $ term_id = 702; $meta_key = 'test_meta_field'; add_term_meta( $term_id, $meta_key, 'Привіт світ', false ); add_term_meta( $term_id, $meta_key, 'Hello world', false ); // отримує щойно додані дані $fields = get_term_meta ($ term_id, $ meta_key); print_r($fields); /* Виведе: Array ( [0] => Привіт світ [1] => Hello world ) */
#3 Оновлюємо поле із зазначеним значенням
У нас є 2 поля з однаковими ключами test_meta_field
, але різними значеннями, нам потрібно оновити тільки поле зі значенням Hello world
:
update_term_meta(702, 'test_meta_field', 'Hello NEW world', 'Hello world');
список змін
З версії 4.4.0 | Введено. |
Код update_term_meta() update term meta WP 6.0.2
function update_term_meta( $term_id, $meta_key, $meta_value, $prev_value = '' ) { if ( wp_term_is_shared ( $term_id ) ) { return new WP_Error( 'ambiguous_term_id', __( 'Term meta cannot be added to terms that are shared between taxonomies.' ), $term_id ); } return update_metadata( 'term', $term_id, $meta_key, $meta_value, $prev_value ); }