add_term_meta

Добавляет мета поле (дополнительное поле) для элемента указанной таксономии (рубрики, метки …).

Хуков нет.

Возвращает
  • ID – в случае успешного добавления.
  • WP_Error – в случае неверно заданного term_id таксономии.
  • False – в случае ошибки в процессе добавления.

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

add_term_meta( $term_id, $meta_key, $meta_value, $unique );
$term_id(число) (обязательный)
ID термина таксономии.
$meta_key(строка) (обязательный)
Ключ мета поля.
$meta_value(смешанный) (обязательный)
Значение мета поля.
$unique(логический)

Уникальное это значение или нет.

  • false – означает, что для этого элемента таксономии может быть определено несколько одинаковых ключей.
  • true – значит, что ключ для этого элемента может быть только один, т.е. если такой ключ уже существует, то функция ничего не добавит.
    По умолчанию: false

Примеры

#1 Добавим мета поле с единственным значением

$term_id  = 62;
$meta_key = 'test_meta_field';

add_term_meta( $term_id, $meta_key, 'Привет мир', true );

// Выводим
echo get_term_meta( $term_id, $meta_key, true ); // выведет 'Привет мир'

// пробуем добавить еще одно поле с тем же ключом
$done = add_term_meta( $term_id, $meta_key, 'Привет мир 2', true );
var_dump( $done ); // bool(false)

#2 Добавляем несколько значений для одного мета поля

$term_id  = 62;
$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
)
*/

Код из


wp-includes/taxonomy.php

WP 4.7.2

<?php
function add_term_meta( $term_id, $meta_key, $meta_value, $unique = false ) {
	// Bail if term meta table is not installed.
	if ( get_option( 'db_version' ) < 34370 ) {
		return false;
	}

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

	$added = add_metadata( 'term', $term_id, $meta_key, $meta_value, $unique );

	// Bust term query cache.
	if ( $added ) {
		wp_cache_set( 'last_changed', microtime(), 'terms' );
	}

	return $added;
}