WooCommerce产品类别基础与产品基础相同原因404

时间:2018-02-28 作者:Bob

我面临以下问题:
我希望我的产品和产品类别具有相同的url基础。E、 g。www.example.com/products/product-category
www.example.com/products/sample-product

尝试通过Permalinks部分实现这一点会导致所有产品都出现404。我知道我可以使用不同的名称作为类别基础,例如“foo”(www.example.com/foo/product category),然后使用以下代码将其重新写入“products”:

add_filter(\'product_cat_rewrite_rules\',\'update_base_category_rewrite_rule\'); 
function update_base_category_rewrite_rule($category_rewrite){
    $new_category_rewrite = $category_rewrite;
    foreach($category_rewrite as $key => $value){
            $xyz = str_replace(\'foo\', \'products\', $key);
            $new_category_rewrite[$xyz] = $value; 
    } 
    return $new_category_rewrite; 

}
如上所述的问题是,正如预期的那样,网站上的所有类别链接仍然以www.example.com/foo/product-category

在此方面的任何帮助都将不胜感激。

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

你不能现实地做这样的事。Wordpress URL解析不够“聪明”,无法在同一“前缀”下处理不同类型的内容。Wordpress将尝试将URL解析为产品or 类别,这取决于它们在重写表中的特定顺序,并且在其他类型上将失败。

如果您必须有这样一个方案,您可以覆盖重写处理并实现自己的方案(本网站上可能很少有示例),但我认为这样一件事所需的工作和引入的代码的复杂性将不值得(代码本身不应该很复杂,但无论谁在你经历了一个WTF的大时刻后维护代码,都会试图理解正在发生的事情)。

结束

相关推荐