php – 如何禁用Magento的简单产品URL重写管理?
发布时间:2020-12-13 21:46:48 所属栏目:PHP教程 来源:网络整理
导读:我在一个Magento安装上运行了3个在线商店. 它们共享超过10,000个SKU(我将它们设置为简单产品),但前端可见的唯一产品是每个商店的分组产品(与SKU相关联). 因此,我的URL重写表非常繁重,在检查Varien Profiler时,我遇到了“mage :: dispatch :: routers_match”
我在一个Magento安装上运行了3个在线商店.
它们共享超过10,000个SKU(我将它们设置为简单产品),但前端可见的唯一产品是每个商店的分组产品(与SKU相关联). 因此,我的URL重写表非常繁重,在检查Varien Profiler时,我遇到了“mage :: dispatch :: routers_match”,这需要5秒多的时间才能完成.我估计这是因为它是一张如此大的桌子.这让我想到了我的问题: 如何指定我不想重写哪个URL Magento.无论如何,我可以告诉它不要重写简单的产品网址吗?仅这一点就会使表格下降到1/3. PS:Magento CE 1.7.0.2 编辑: 谢谢Tobias指出我正确的方向.我去了app / code / core / Mage / Catalog / Model / Url.php,并将函数refreshProductRewrites编辑为: foreach ($products as $product) { if($product->getTypeId() == "simple"){ continue; } else { $this->_refreshProductRewrite($product,$this->_categories[$storeRootCategoryId]); foreach ($product->getCategoryIds() as $categoryId) { if ($categoryId != $storeRootCategoryId && isset($this->_categories[$categoryId])) { if (strpos($this->_categories[$categoryId]['path'],$storeRootCategoryPath . '/') !== 0) { continue; } $this->_refreshProductRewrite($product,$this->_categories[$categoryId]); } } } } 解决方法
存储在core_url_rewrite中的产品的集合在Mage_Catalog_Model_Url refreshProductRewrites中生成.
您可以重写此类并实现您自己的实现,该实现仅存储分组的产品. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |