【问题标题】:How to change a Wordpress term's slug before saving如何在保存之前更改 Wordpress 术语的 slug
【发布时间】:2018-11-20 08:00:23
【问题描述】:

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

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

< 10 million views
> 10 million views

Wordpress 会自动删除“”符号,这意味着第二个属性被视为重复,因此不会被导入。

WP All Import 的开发人员建议使用 wp_insert_term_data 挂钩在将 slug 插入数据库时​​对其进行更改。

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

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

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

提前感谢您的帮助!

【问题讨论】:

    标签: wordpress slug term


    【解决方案1】:

    这是您的案例所需的功能:

    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,但它也适合您的情况。

    【讨论】:

      猜你喜欢
      • 2012-08-30
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多