检查是否存在slug,否则在woocommerce中创建一个新产品

时间:2017-04-13 03:37:53

标签: wordpress woocommerce

我在这里有一个代码,它会将产品插入到woocommerce的数据库中:

$post = array(
  'post_author' => $user_id,
  'post_content' => '',
  'post_status' => "publish",
  'post_title' => $product->part_num,
  'post_parent' => '',
  'post_type' => "product",
); 
$post_id = wp_insert_post( $post, $wp_error );

但是,在插入新产品之前,我想检查一下slug是否存在于数据库中,否则,我想添加一个新的并在slug上附加一个数字。

示例输入:

$new_url = sanitize_title('This Long Title is what My Post or Page might be');

输出:

这长的标题 - 是 - 什么 - 我 - 后或页面,可能成为的

现在,我想检查数据库中是否已存在此slug。如果它存在,我会在slug上添加一个数字(就像wordpress permalink正在做的那样)。如果它已经存在,我想将其输出为:

这长的标题 - 是 - 什么 - 我 - 后或页面,可能待1

我想将新产品与新的slug一起添加到数据库中。

有人知道吗?

1 个答案:

答案 0 :(得分:0)

未经测试但只编写了该代码。试试看,让我知道

function slug_exists($slug){
   if(get_page_by_path( $slug, OBJECT, 'product' )){
      return true;
   }
   return false;
}

$slug = 'your_slug';
$new_slug = $slug;
$c=1;
while(slug_exists($new_slug)){
  $new_slug = $slug.'-'.$c;
  $c++;
}

// $ new_slug包含您想要的slug