WooCommerce官方不推荐去除URL上的基础链接(product和product-category),见此链接:https://docs.woocommerce.com/document/removing-product-product-category-or-shop-from-the-urls/
官方的理由主要是这样会导致性能损耗。
但其实这样做了之后还会导致分类和产品的URL产生冲突。比如说分类的slug是plugins,然后有一个产品的slug也是plugins……
这时你访问:/plugins时,WordPress就不知道你究竟访问的是分类还是产品了。
此时你可以通过以下代码强制指定访问/plugins时返回plugins分类:
add_filter( 'request', function ( $query ) {
$url = $_SERVER['REQUEST_URI'];
$pos = strpos( $url, '?' );
if ( $pos ) {
$url = substr( $url, 0, $pos - strlen( $url ) );
}
$pos = strpos( $url, '#' );
if ( $pos ) {
$url = substr( $url, 0, $pos - strlen( $url ) );
}
switch ( $url ) {
case '/store/plugins':
return array( 'product_cat' => 'plugins' );
default:
return $query;
}
}, 9999 );
如果你想强制指定更多分类,可以在switch的case里多写几条规则。