update_term_meta() WP 4.4.0

Оновлює метадані елемента таксономії (категорії, мітки…).

Використовуйте параметр $prev_value, щоб оновити вже існуючі значення, коли є кілька полів з однаковим ключем.

Якщо до моменту виклику функції поле ще не існує, воно буде додано.

Назва таксономії не передається функції, тому кожен термін має унікальний ID ($term_id) і прив’язаний до конкретної таксономії.

Працює на основі:
wp_term_is_shared() ,
update_metadata()

Хуків немає.

Повертає

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
(змішаний)
Попереднє значення. Потрібне оновлення конкретного поля, коли існує кілька полів з однаковим ключем.

За замовчуванням: ”

Приклади


0

#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];
}

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
)
*/

0

#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() 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 );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *