如何在保存之前更改Wordpress术语的slug

时间:2018-06-11 06:18:18

标签: wordpress slug term

我们正在使用WP All Import将CSV中的产品数据导入WooCommerce。一切正常(伟大的插件!)但我们有一个问题:

我们的两个产品属性包含不允许的符号:

< 10 million views
> 10 million views

Wordpress会自动删除'&lt;'和'&gt;'符号表示第二个属性被视为重复,因此不会导入。

WP All Import的开发人员建议使用wp_insert_term_data挂钩在插入数据库时​​更改slugs。

这是一个好主意,因为我们可以维护这两个属性。例如:

< 10 million views becomes lt-10-million-views
> 10 million views becomes gt-10-million-views

我确信这很简单,但在挂钩到Wordpress时我还是个新手!最好的方法是什么?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

以下是您案例所需的功能:

add_filter( 'wp_insert_term_data', 'hook_term_332', 10, 3 );
function hook_term_332( $data, $taxonomy, $args ){
  //this is for slug part
  $data['slug']=sanitize_title($data['slug']);

  //this is for visible name part
  $data['name']=str_replace(array(">"), array("some_another_character"), $data['name']);

  return $data;
}

函数“sanitize_title”将任何字符串格式化为可接受的slug。通常它用于清理帖子标题和为它们创建slug,但它也适合你的情况。