我被困在产品集合中获取产品网址。我有这段代码来获取设置的特色产品的产品集合。
$_productCollection = Mage::getModel('catalog/product')
->setStoreId(Mage::app()->getStore()->getId())
->getCollection();
$_productCollection->addAttributeToFilter('feat_enabled', 1);
$_productCollection->setVisibility(array(2,3,4));
$_productCollection->addUrlRewrite();
$_productCollection->groupByAttribute('entity_id');
$_productCollection->load();
foreach($_productCollection as $_product){
$_product->load($_product->getId());
if($_product->getIsSalable()){
$_name = ltrim(rtrim($_product->getName()));
$_url = $_product->getProductUrl();
}
}
我在这里做错了什么,如果在每个循环中都回显 $_url,则缺少返回的 url。它没有类别名称和子目录名称。正确的网址应该是:
index.php/category/subcategory/itemname.html
但目前它只返回
index.php/itemname.html
它返回除 url 之外的正确数据。如果我将项目分配给一个类别和子类别,我会在管理员中仔细检查,我确认我分配了它。
Upon further research, I have found the code below that is very close to what i need.
$_categories = $_product->getCategoryIds();
$_category = Mage::getModel('catalog/category')->load($_categories[0]);
$_url = Mage::getUrl($_category->getUrlPath()).basename($_product->getProductUrl());
这里的问题,$_url 的值变成了这样
index.php/category/subcategory.html/itemname.html
子类别名称中包含 .html。我的 url 中不需要 .html,因此单击该项目时会重定向到正确的页面。
有什么想法可以解决这个问题吗?