WordPress как на ладони
wordpress jino

update_term_meta() WP 4.4.0

Обновляет метаданные элемента таксономии (категории, метки ...).

Используйте параметр $prev_value чтобы обновить уже существующие значение, когда есть несколько полей с одинаковым ключом.

Если к моменту вызова функции поле еще не существует то оно будет добавлено.

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

Работает на основе: wp_term_is_shared(), update_metadata()

Хуков нет.

Возвращает

Число/WP_Error/true/false. Вернет:

  • 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');

Код update term meta: wp-includes/taxonomy.php WP 4.8.2

<?php
function update_term_meta( $term_id, $meta_key, $meta_value, $prev_value = '' ) {
	// 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 );
	}

	$updated = update_metadata( 'term', $term_id, $meta_key, $meta_value, $prev_value );

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

	return $updated;
}

Cвязанные функции

Из метки: metadata (метаданные)

petrozavodsky 675alkoweb.ru
Делаю веб, можно сказать работаю с WordPress. Временами живу в Краснодаре.
update_term_meta Комментариев нет

Здравствуйте, !

Ваш комментарий