为WooCommerce中的自定义产品类型设置单独的 Slug

文 / @WordPress主题

自我介绍

您好,我是一名技术人员,对WordPress和WooCommerce有丰富的经验。今天我将向您分享如何为特定产品类型设置单独的URL前缀。

为自定义产品类型添加新的URL重写规则

默认情况下,WooCommerce所有文章类型的URL前缀都是“product”。但如果想要为某个产品类型设置独立的前缀,就需要进行一些额外的设置。

我们可以为特定产品类型添加一个单独的URL重写规则,并通过 the_permalinkFilter 修改该产品类型的固定链接URL。这样就可以实现为特定产品类型设置单独的URL前缀了。

可以使用 add_rewrite_rule 函数添加新的URL重写规则。以下是添加一个名为“books”的产品类型的新规则的示例代码:

add_action('init', function(){
  add_rewrite_rule(
    '^books/([^/]*)/?',
    'index.php?product=$matches[1]',
    'top'
  );

  flush_rewrite_rules();
});

通过上面的代码,我们就能够使用“books”前缀访问所有商品了。

修改自定义产品类型的固定链接

为了实现为特定产品类型设置单独的URL前缀功能,我们还需要修改该产品类型的固定链接。可以添加以下代码实现这一步骤:

add_filter('the_permalink', function($link, $post){
  global $product;

  if($product && $product->is_type('books')){
    $link = str_replace('/product/', '/books/', $link);
  }

  return $link;
}, 10, 2);

通过上述代码,当使用“books”前缀访问时,链接将被替换为我们定义的前缀。需要注意的是,使用本方法会导致每个产品有两个网址,并且为了避免重复内容问题,需要稍加注意。

希望上述内容对您有所帮助!

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。