WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

Как переименовать термин после его создания?

использую код ниже для автоматического переименования терминов (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 термина

0
Гость 6 месяцев назад
  • 0
    Kama4477

    Насколько я понял вопрос, тебе нужен хук 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;
    }
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.