wp_update_term()

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Изменяет элемент таксономии.

Функция возвращает:

wp_update_term( $term_id, $taxonomy, $args = array() )

Параметры

$term_id
(целое) ID обновляемого термина.
$taxonomy
(строка) Название таксономии обновляемого термина.
$args
(массив) Какую информацию о термине нужно изменить. Может принимать значения:

  • name – имя,
  • slug – ярлык,
  • term_group – значение term_group,
  • description – описание,
  • parent – ID родительского термина.

Все передаваемые здесь значения очистятся функцией sanitize_term().

Пример

В качестве примера можем попробовать обновить название стандартной рубрики «Без категории». Так как это самая первая рубрика на сайте, то её ID будет равен 1, так как это рубрика, то название таксономии будет category.

$term = wp_update_term(
	1,
	'category',
	array(
		'name' => 'С категорией'
	)
);
 
if( ! is_wp_error( $term ) ) {
	echo 'Рубрика обновлена.';
} else {
	echo $term->get_error_message();
}

Хуки

edit_terms

Будет запущен непосредственно перед тем, как элемент таксономии будет изменён.

С версии 2.9.0

do_action( 'edit_terms', $term_id, $taxonomy );

wp_update_term_data

Позволяет модифицировать все изменяемые данные термина перед непосредственно его изменением.

С версии 4.7.0

$data = apply_filters( 'wp_update_term_data', $data, $term_id, $taxonomy, $args );

Хочу рассмотреть подобный пример для хука wp_update_term_data. Сделаем так, что переименовывая термин в «Лыжи», он автоматически будет переименовываться в «Сноуборд».

add_filter( 'wp_update_term_data', 'true_filter_term_name_before_upd', 25, 4 );
 
function true_filter_term_name_before_upd( $data, $term_id, $taxonomy, $args ) {
 
	if( 'Лыжи' === $data[ 'name' ] ) {
		$data[ 'name' ] = 'Сноуборд';
	}
	return $data;
 
}

edited_terms

Запускается непосредственно после того, как таблица терминов wp_terms обновлена, но перед тем, как таблица таксономий wp_term_taxonomy обновлена.

С версии 2.9.0

do_action( 'edited_terms', $term_id, $taxonomy );

edit_term_taxonomy

Запускается непосредственно после того, как таблица терминов wp_terms обновлена, но перед тем, как таблица таксономий wp_term_taxonomy обновлена.

С версии 2.9.0

do_action( 'edit_term_taxonomy', $tt_id, $taxonomy );

edited_term_taxonomy

Запускается непосредственно после того, как таблица таксономий термина wp_term_taxonomy обновлена.

С версии 2.9.0

do_action( 'edited_term_taxonomy', $tt_id, $taxonomy );

edit_term

Запускается после того, как термин был полностью обновлен, но перед очисткой кэша.

С версии 2.3.0

do_action( 'edit_term', $term_id, $tt_id, $taxonomy )

edit_{$taxonomy}

Запускается после того, как термин был полностью обновлен, но перед очисткой кэша.

С версии 2.3.0

do_action( "edit_{$taxonomy}", $term_id, $tt_id );

term_id_filter

Позволяет модифицировать ID созданного термина, который уже будет использоваться при очистке кэша и во всех последующих хуках.

С версии 2.3.0

$term_id = apply_filters( 'term_id_filter', $term_id, $tt_id );

edited_term

Срабатывает после обновления термина в базе данных и после очистки кэша.

С версии 2.3.0

do_action( 'edited_term', $term_id, $tt_id, $taxonomy );

edited_{$taxonomy}

Срабатывает после обновления термина в базе данных и после очистки кэша.

С версии 2.3.0

do_action( "edited_{$taxonomy}", $term_id, $tt_id );

saved_term

Срабатывает после добавления термина в базу данных и после очистки кэша.

С версии 5.5.0

do_action( 'saved_term', $term_id, $tt_id, $taxonomy, true );

Четвёртый параметр true в данном случае означает, что мы обновляем уже существующий термин. Этот же хук присутствует и в функции wp_insert_term(), и там четвёртый параметр уже равен false – то есть мы добавляем новый элемент таксономии.

saved_{$taxonomy}

Срабатывает после добавления термина в базу данных и после очистки кэша.

С версии 5.5.0

do_action( "saved_{$taxonomy}", $term_id, $tt_id, true );
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии