2
$ _product-> getProductUrl()提供不带URL密钥的URL路径
我在几个不同的Magento网站的页面上都得到了某个类别的产品集合。我获取收藏的代码是: $category = new Mage_Catalog_Model_Category(); $category->load($id); $collection = $category->getProductCollection(); $collection->addAttributeToSelect('*'); $collection->addAttributeToFilter('status', 1); $collection->addFieldToFilter(array(array('attribute'=>'visibility', 'neq'=>"1" ))); $collection->getSelect()->limit(12); foreach ($collection as $shopProduct) : echo $shopProduct->getProductUrl(); endforeach; 我的问题是,在我们正在运行的Magento站点之一上,ProductUrl()被抓取的网址是,http://www.my site.com/catalog/product/view/id/2309/s/shopcat/category/373/而不是http://www.site.com/shopcat/product-url-key.html。但是,在所有其他网站上,它都可以按照我们的意愿出现。 有谁知道为什么会这样吗?谢谢!我也尝试使用,getUrlPath()但这没有返回任何内容。我知道我可以通过做类似的事情来解决这个问题,<?php echo $this->getBaseUrl().$shopProduct->getUrlKey().".html"; ?>但是这种方法似乎效率不高! 编辑21/03/14:我仍然有这个问题。我已经意识到getProductUrl()可以在网站的某些模板文件上检索所需的URL,但不能在其他文件上检索。例如,我在首页上加载了一个收藏集,并且给了我想要的URL。但是getProductUrl()没有在类别视图中用相同的代码提供我想要的URL。