Функция update_term_meta()
в WordPress используется для обновления метаданных термина. Эта функция позволяет добавлять новые параметры или обновлять существующие, которые хранятся в таблице метаданных терминов.
int|bool update_term_meta( int $term_id, string $meta_key, mixed $meta_value, mixed $prev_value = '' )
- $term_id (int) (обязательный): ID термина, метаданные которого нужно обновить.
- $meta_key (string) (обязательный): Ключ метаданных, который нужно обновить.
- $meta_value (mixed) (обязательный): Новое значение метаданных. Если передан массив, он будет сериализован.
- $prev_value (mixed) (необязательный): Предыдущее значение метаданных. Если указано, обновление произойдёт только для этого значения.
Функция возвращает:
true
– если мета-поле успешно обновлено.false
– если обновление не произошло, например, из-за несуществующего термина или совпадения нового значения со старым.- ID мета-поля – если мета-поле не существовало ранее и было создано.
Примеры использования
Рассмотрим несколько примеров использования функции update_term_meta()
.
Пример 1: Обновление мета-поля термина
Допустим, мы хотим обновить описание для термина с ID 10. Если мета-поле description
у термина не существует, оно будет создано:
$term_id = 10;
update_term_meta( $term_id, 'description', 'Новое описание термина' );
Пример 2: Работа с параметром $prev_value
Рассмотрим случай, когда у термина может быть несколько значений для одного ключа мета-поля. Например, термин может иметь несколько мета-полей tagline
, каждое из которых представляет собой различные слоганы:
+---------+----------------------+----------------
| term_id | meta_key | meta_value |
+---------+----------------------+----------------
| 10 | tagline | Слоган 1 |
| 10 | tagline | Слоган 2 |
| 10 | tagline | Слоган 3 |
Если обновить поле tagline
следующим образом:
update_term_meta( 10, 'tagline', 'Новый слоган' );
Все записи с ключом tagline
будут заменены на Новый слоган
. Чтобы изменить только конкретное значение, используем параметр $prev_value
:
update_term_meta( 10, 'tagline', 'Новый слоган', 'Слоган 1' );
Пример 3: Проверка успешности обновления
Чтобы понять, была ли ошибка при обновлении или новое значение совпадает с предыдущим, можно использовать следующий код:
$term_id = 10;
$new_value = 'новое значение';
$updated = update_term_meta( $term_id, 'example_meta_key', $new_value );
if ( false === $updated ) {
// Проверяем, произошло ли совпадение значений или ошибка обновления
if ( $new_value !== get_term_meta( $term_id, 'example_meta_key', true ) ) {
wp_die( 'Ошибка обновления мета-поля! Возможно, ID термина некорректен.' );
}
}
Заключение
Функция update_term_meta()
является мощным инструментом для работы с метаданными терминов в WordPress. Она позволяет легко обновлять метаполя, что значительно расширяет возможности управления данными терминов. Понимание и правильное использование update_term_meta()
помогает эффективно обрабатывать данные терминов и создавать более гибкие и мощные решения для вашего сайта.