Как изменить слаг Wordpress перед сохранением - PullRequest
0 голосов
/ 11 июня 2018

Мы используем WP All Import для импорта данных о товарах из CSV в WooCommerce.Все работает отлично (отличный плагин!), Но у нас есть одна проблема:

Два наших атрибута продукта содержат запрещенные символы:

< 10 million views
> 10 million views

Wordpress автоматически удаляет символы «<» и «>»Это означает, что второй атрибут обрабатывается как дубликат и поэтому не импортируется.

Разработчики WP All Import предлагают использовать хук wp_insert_term_data для изменения слагов при их вставке в базу данных.

Это хорошая идея, так как тогда мы сможем поддерживать оба атрибута.Например:

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

Я уверен, что это довольно просто, но я все еще новичок, когда дело доходит до подключения к Wordpress!Какой лучший способ сделать это?

Заранее спасибо за любую помощь!

1 Ответ

0 голосов
/ 11 июня 2018

Вот необходимая функция для вашего случая:

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" форматирует любую строку в приемлемый слаг.Обычно он используется для очистки заголовков постов и создания слагов для них, но также подходит для вашего случая.

...