Обновление метаданных терминов в 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!