Обновление метаданных терминов в WordPress: функция update_term_meta()

Обновление метаданных терминов в WordPress (UPDATE_TERM_META) │ WP 4.4.0

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

Что такое метаданные терминов?

Метаданные терминов — это дополнительная информация, связанная с категориями или тегами на вашем сайте. Например, вы можете добавить описание к тегу, чтобы дать ему больше контекста.

Как работает update_term_meta()

Функция принимает несколько параметров:

  • $term_id (int, необходимый) — ID термина, который вы хотите обновить.
  • $meta_key (string, необходимый) — ключ метаданных.
  • $meta_value (mixed, необходимый) — новое значение метаданных. Если оно не скалярное, то должно быть сериализуемым.
  • $prev_value (mixed, необязательный) — предыдущее значение, чтобы убедиться, что обновление произойдет только при совпадении.

Возвращаемые значения

Функция может вернуть:

  • ID метаданных, если ключ не существовал.
  • true, если обновление успешно.
  • false, если обновление не удалось или если новое значение совпадает с существующим.
  • WP_Error, если ID термина неоднозначен между таксономиями.

Пример использования update_term_meta()

update_term_meta( 702, 'test_meta_field', 'Hello world' );

Отображение метаданных на странице тега

После обновления метаданных, вы можете отобразить их на странице тега:

$fields = get_term_meta( get_queried_object_id(), 'test_meta_field' );

if ( $fields && is_array( $fields ) ) {
    echo $fields[0];
}

Примеры

Пример 1: Установка текста для тега

Установим текст "Hello World" для тега с ID 702 и сохраним его в метаданных test_meta_field:

update_term_meta( 702, 'test_meta_field', 'Hello world' );

Пример 2: Добавление нескольких метаданных с одинаковым ключом

Вы можете добавить несколько значений для одного и того же ключа:

$term_id  = 702;
$meta_key = 'test_meta_field';

add_term_meta( $term_id, $meta_key, 'Hello world', false );
add_term_meta( $term_id, $meta_key, 'Hello world 2', false );

// Получаем данные, которые только что добавлены
$fields = get_term_meta( $term_id, $meta_key );

print_r( $fields );

/* Результат:
Array
(
    [0] => Hello world
    [1] => Hello world 2
)
*/

Пример 3: Обновление поля с указанным значением

Если у вас есть два метаполя с одинаковым ключом test_meta_field, но с разными значениями, и вы хотите обновить только одно из них:

update_term_meta( 702, 'test_meta_field', 'Hello NEW world', 'Hello world' );

Изменения

  • С версии 4.4.0 — добавлена возможность обновления метаданных терминов.

Код функции update_term_meta

Вот как выглядит код функции, которая реализует update_term_meta:

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

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

}

Это простое объяснение функции и её использования. Теперь вы сможете эффективно управлять метаданными ваших терминов в WordPress!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *