创建术语时自动修改段塞的生成

时间:2018-07-04 作者:javiregpa

我需要修改slug的消毒term 已创建。例如,我正在创建一个名为0,5的术语,自动生成的slug是05。我需要在逗号的位置加一个破折号,检查的slug将是0-5。

可以重写主题函数中的代码。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 个回复
最合适的回答,由SO网友:Shibi 整理而成

你会有这样的虫子。因为你没有用sanitize_title().

并且您没有检查wp_unique_term_slug()

错误测试:

在名称中添加空格,然后查看带空格的slugsanitize_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;
}

结束

相关推荐

WP_SET_OBJECT_TERMS()不向自定义帖子和自定义分类添加新术语

我正在使用自定义分类法创建自定义帖子类型,同时为自定义帖子提交前端表单。它正在创建帖子,但并没有创建我已经设置的新分类法,只需要添加自定义分类法<form action=\'\' method=\"post\" id=\"drop_message\"> <div class=\"input-group\"> <div class=\"first\"> <label for=\"first-name-opt\"&g