pre_insert_term
Позволяет изменить название термина (рубрики, метки) перед его очисткой и вставкой в базу данных.
На этом фильтре также можно остановить операцию создания термина и отобразить произвольную ошибку.
Использование
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().
Примеры
#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; }
#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. |
Где вызывается хук
pre_insert_term
wp-includes/taxonomy.php 2424
$term = apply_filters( 'pre_insert_term', $term, $taxonomy, $args );