WP_UPDATE_TERM() │ WordPress 2.3.0
Функция wp_update_term()
обновляет термин (элемент таксономии) с помощью указанных данных.
Как это работает
Прежде чем обновить данные термина, функция извлекает исходные данные из базы данных и обновляет их с использованием переданных данны��. Любое новое поле, указанное в $args
, заменит старое.
Все поля, указанные в $args
, будут перезаписаны в базе данных. Поэтому внимательно проверяйте обновленные данные, чтобы убедиться, что вы ничего не изменили ненароком.
Если вам нужно добавить новый термин, используйте функцию wp_insert_term()
.
Использование
wp_update_term( $term_id, $taxonomy, $args );
- $term_id (int) (обязательный): ID термина, который вы хотите обновить.
- $taxonomy (string) (обязательный): название таксономии, к которой относится термин (например,
category
,post_tag
). - $args (array|string): массив или строка (в виде запроса) новых полей термина.
Поля в $args
- name (string): Новый имя термина. (по умолчанию: '')
- slug (string): Новый слаг термина.
- Если вы не передадите слаг, будет создан уникальный на основе названия (
name
). - Если слаг не уникален, вернется ошибка.
- Если вы не передадите слаг, будет создан уникальный на основе названия (
- description (string): Описание термина. (по умолчанию: '')
- parent (int): ID родительского термина. (по умолчанию: 0)
- alias_of (string): Слаг термина, для группировки текущего обновляемого термина с указанным термином в одну группу.
Пример обновления термина
В этом примере показано, как обновить термин с ID=1 в таксономии "категории". Давайте установим новое имя для термина:
$result = wp_update_term( 1, 'category', [
'name' => 'Новая Категория',
// 'slug' => 'novaya-kategoriya' // этот параметр создается автоматически
] );
// проверяем результат
if( is_wp_error( $result ) ){
echo $result->get_error_message();
} else {
echo 'Термин был успешно обновлен.';
}
Что возвращает функция
- Array: массив, содержащий
term_id
иterm_taxonomy_id
. - WP_Error: объект ошибки, если произошла ошибка, например, не уникальный слаг.
Примечания
- Глобальная переменная:
$wpdb
- объект абстракции базы данных WordPress.
Изменения
- С версии: 2.3.0 — функция была введена.
Функция находится в файле wp-includes/taxonomy.php
.
function wp_update_term( $term_id, $taxonomy, $args = array() ) {
global $wpdb;
if ( ! taxonomy_exists( $taxonomy ) ) {
return new WP_Error( 'invalid_taxonomy', __( 'Недопустимая таксономия.' ) );
}
$term_id = (int) $term_id;
// Получаем исходные данные термина.
$term = get_term( $term_id, $taxonomy );
if ( is_wp_error( $term ) ) {
return $term;
}
if ( ! $term ) {
return new WP_Error( 'invalid_term', __( 'Пустой термин.' ) );
}
$term = (array) $term->data;
// Экранируем данные из базы данных.
$term = wp_slash( $term );
// Объединяем старые и новые аргументы.
$args = array_merge( $term, $args );
$defaults = array(
'alias_of' => '',
'description' => '',
'parent' => 0,
'slug' => '',
);
$args = wp_parse_args( $args, $defaults );
$args = sanitize_term( $args, $taxonomy, 'db' );
$name = wp_unslash( $args['name'] );
$description = wp_unslash( $args['description'] );
if ( '' === trim( $name ) ) {
return new WP_Error( 'empty_term_name', __( 'Имя термина обязательно.' ) );
}
// Дополнительная логика для получения slug и обновления данных в базе данных...
return array(
'term_id' => $term_id,
'term_taxonomy_id' => $tt_id,
);
}
Заключение
Функция wp_update_term()
полезна для обновления данных о терминах в WordPress, обеспечивая удобный интерфейс для работы с таксономиями. Проверяйте правильность передаваемых данных, чтобы избежать ошибок.