pre_insert_termхук-фильтрWP 3.0.0

Позволяет изменить название термина (рубрики, метки) перед его очисткой и вставкой в базу данных.

На этом фильтре также можно остановить операцию создания термина и отобразить произвольную ошибку.

Использование

add_filter( 'pre_insert_term', 'wp_kama_pre_insert_term_filter', 10, 3 );

/**
 * Function for `pre_insert_term` filter-hook.
 * 
 * @param string|WP_Error $term     The term name to add, or a WP_Error object if there's an error.
 * @param string          $taxonomy Taxonomy slug.
 * @param array|string    $args     Array or query string of arguments passed to wp_insert_term().
 *
 * @return string|WP_Error
 */
function wp_kama_pre_insert_term_filter( $term, $taxonomy, $args ){

	// filter...
	return $term;
}
$term(строка)
Название термина.
$taxonomy(строка)
Название таксономии, указываемое первым параметром в register_taxonomy().
$args(строка) (WP 6.1)
Массив или строка запроса аргументов, передаваемых функции wp_insert_term().

Примеры

0

#1 Изменим название добавляемой рубрики

На хуке pre_insert_term можно изменить название создаваемого термина как угодно. Для примера сделаем название всех создаваемых рубрик с большой буквы:

add_filter( 'pre_insert_term', 'change_pre_insert_term', 10, 2 );

function change_pre_insert_term( $term, $taxonomy ) {
	if ( 'category' === $taxonomy ) {
		$first_letter      = mb_strtoupper( mb_substr( $term, 0, 1 ) );
		$remaining_letters = mb_substr( $term, 1 );

		$term = $first_letter . $remaining_letters;
	}

	return $term;
}
0

#2 Запретим создавать рубрики с именем из одних цифр

add_filter( 'pre_insert_term', 'change_pre_insert_term', 10, 2 );

function change_pre_insert_term( $term, $taxonomy ) {
	if ( 'category' === $taxonomy && is_numeric( $term ) ) {
		return new WP_Error( 'error', 'Название рубрики не может быть только из цифр.' );
	}

	return $term;
}

Список изменений

С версии 3.0.0 Введена.
С версии 6.1.0 The $args parameter was added.

Где вызывается хук

wp_insert_term()
pre_insert_term
wp-includes/taxonomy.php 2416
$term = apply_filters( 'pre_insert_term', $term, $taxonomy, $args );

Где используется хук в WordPress

Использование не найдено.