Как переименовать термин после его создания?
использую код ниже для автоматического переименования терминов (slug = term_id) после их обновления в админке (когда термины уже существуют)
add_filter( 'wp_update_term_data', 'filter_function_name_11', 10, 4 );
function filter_function_name_11( $data, $term_id, $taxonomy, $args ) {
$data['slug'] = $term_id;
return $data;
}
после нажатия на кнопку Обновить срабатывает хук wp_update_term_data со всеми данными о термине и дальше выполняется функция. удобно.
теперь нужно переименовывать термины сразу после их добавления в админку.
какой хук можно использовать для решения такой задачи? как видно из функции выше, в хуке обязательно должен быть ID термина
Насколько я понял вопрос, тебе нужен хук create_term - срабатывает сразу после того, как термин создан, но до того как кэш был очищен.
Используется примерно так (не тестировал):
add_action( 'create_term', 'action_function_name_11', 10, 3 ); function action_function_name_11( $term_id, $tt_id, $taxonomy ){ // тут обновляешь slug global $wpdb; $wpdb->update( $wpdb->terms, array('slug'=>"$term_id"), array('term_id'=>$term_id) ); }Вариант 2
Также можно в хуке wp_insert_term_data опустошить параметр slug, тогда WP сам использует id термина в качестве слага.
add_filter( 'wp_insert_term_data', 'filter_function_name_11', 10, 3 ); function filter_function_name_11( $data, $taxonomy, $args ){ $data['slug'] = ''; return $data; }