Php Magento自定义站点地图

Php Magento自定义站点地图,php,magento,sitemap,Php,Magento,Sitemap,Magento的默认站点地图生成一个XML文件,显示所有产品,包括与可配置产品关联的简单产品。我只想要可配置的产品,而不是相关的简单产品,有人能帮我吗 在Mage/Sitemap/Model/Sitemap.php中,生成XML站点地图的函数是generateXml,生成产品URL的代码块是: $changefreq = (string)Mage::getStoreConfig('sitemap/product/changefreq', $storeId); $priority = (str

Magento的默认站点地图生成一个XML文件,显示所有产品,包括与可配置产品关联的简单产品。我只想要可配置的产品,而不是相关的简单产品,有人能帮我吗

在Mage/Sitemap/Model/Sitemap.php中,生成XML站点地图的函数是generateXml,生成产品URL的代码块是:

$changefreq = (string)Mage::getStoreConfig('sitemap/product/changefreq', $storeId);
$priority   = (string)Mage::getStoreConfig('sitemap/product/priority', $storeId);
$collection = Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId);
foreach ($collection as $item) {
    $xml = sprintf('<url><loc>%s</loc><lastmod>%s</lastmod><changefreq>%s</changefreq><priority>%.1f</priority></url>',
    htmlspecialchars($baseUrl . $item->getUrl()),
    $date,
    $changefreq,
    $priority
    );
    $io->streamWrite($xml);
}
unset($collection);
并更改了这一行:

htmlspecialchars($baseUrl . $item->getUrl()),
到这条线去让它工作

htmlspecialchars($item->getProductUrl()),
我获得了正确的产品,但没有关联的产品,但URL如下所示:

http://www.domain.com/catalog/product/view/id/532/
我想重写Url,因此我将其更改为:

$collection = Mage::getModel('catalog/product')->getCollection($storeId)
->addUrlRewrite();
但我仍然明白这一点:

http://www.domain.com/catalog/product/view/id/532/

有什么问题吗?

您可以尝试使用以下代码

$product_collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('entity_id', 16)->addUrlRewrite();
echo $product_collection->getFirstItem()->getProductUrl();
或者,您可以单独加载url,因为您已经有了产品集合,然后尝试类似的方法

Mage::getResourceSingleton('catalog/product')->getAttributeRawValue($productId, 'attribute_code', Mage::app()->getStore());

谢谢你的回复,不幸的是我没有得到想要的结果
Mage::getResourceSingleton('catalog/product')->getAttributeRawValue($productId, 'attribute_code', Mage::app()->getStore());