Автоматически изменять генерацию слага при создании термина
Мне нужно изменить очистку слизняка при создании термина . Например, я создаю термин с именем 0,5, а автоматически сгенерированный слиток равен 05. Мне нужно добавить тире в положение запятой, указанный слиток будет 0-5.
Это можно сделать, переопределив код в теме functions.php ?
РЕШЕНО:
add_action('wp_insert_term_data', 'slug_save_term_callback', 10, 3 );
function slug_save_term_callback($data, $taxonomy, $args) {
$name = $data['name'];
$name = str_replace(',', '-', $name);
$data['slug'] = $name;
return $data;
}
Спасибо
1
1 answers
У вас будут такие ошибки, как эта. потому что вы не очищаете название с помощью sanitize_title()
.
И вы не проверяете наличие дубликатов с помощью wp_unique_term_slug()
Тесты на ошибки:
- Добавьте пробелы в имя и увидите пули с пробелами.
- После добавления
sanitize_title()
добавить термин с запятой 5,5 добавить термин с пробелом 5 5 результатов с дублированием.
Так что просто исправьте это так:
add_action('wp_insert_term_data', 'slug_save_term_callback', 10, 3 );
function slug_save_term_callback($data, $taxonomy, $args) {
$name = $data['name'];
$name = wp_unique_term_slug(sanitize_title(str_replace(',', '-', $name)), (object) $args);
$data['slug'] = $name;
return $data;
}
1
Author: Shibi, 2018-07-04 17:21:41