Sie erhalten diese URL, weil die Homepage eine CMS-Seite ist.
In Ihrem Fall hat es die Kennung home
.
Um diese URL zu ändern, müssen Sie die Methode neu schreiben Mage_Sitemap_Model_Resource_Cms_Page::_prepareObject
und so aussehen lassen:
protected function _prepareObject(array $data)
{
$object = new Varien_Object();
$object->setId($data[$this->getIdFieldName()]);
//for home set url to ''
if ($data['url'] == 'home') {
$data['url'] = '';
}
$object->setUrl($data['url']);
return $object;
}
Dies funktioniert natürlich nicht, wenn Sie die Homepage auf eine andere Seite ändern. Aber es ist ein schneller Weg, es zu tun.
Wenn Sie die saubere Version möchten, müssen Sie überprüfen, wie die Hompage für Ihr aktuelles Geschäft lautet.
Fügen Sie dazu ein neues Mitglied und eine neue Methode wie folgt hinzu:
protected $_homeId = array();
public function getHomepageId($storeId)
{
if (!isset($this->_homeId[$storeId]))) {
$pageId = Mage::getStoreConfig(Mage_Cms_Helper_Page::XML_PATH_HOME_PAGE, $storeId);
$delimeterPosition = strrpos($pageId, '|');
if ($delimeterPosition) {
$pageId = substr($pageId, 0, $delimeterPosition);
}
$this->_homeId[$storeId] = $pageId;
}
return $this->_homeId[$storeId];
}
In diesem Fall müssen Sie die getCollection
Methode in derselben Klasse ändern . Bevor $page = $this->_prepareObject($row);
Sie dies hinzufügen:
if ($row[$this->getIdFieldName()] == $this->getHomepageId($store)) {
$row['url'] = '';
}
app/code/core/Mage/Sitemap/Model/Resource/Cms/Page.php
wie hierMagento 1.9.0.0. Es wurden zwei Ereignisse hinzugefügt, um die XML-Sitemap für Produkte und Kategorien anzupassen:
sitemap_categories_generating_before
sitemap_products_generating_before
In
Mage_Sitemap_Model_Sitemap::generateXml()
sie ersetztmit
Gleiches gilt für Kategorieseiten, aber 20 Zeilen darunter wurden nur
foreach ($collection as $item)
für CMS-Seiten beibehalten . Ich würde diese Methode anpassen und neu schreiben / modifizierenMage_Sitemap_Model_Sitemap
, um sie durch ... zu ersetzen.Anschließend können Sie dieses neue Ereignis verwenden, um die Sitemap Ihrer CMS-Seiten zu ändern:
Veranstaltung:
Beobachter:
quelle
Danke für den Code.
Mit diesem Snippet habe ich eine Erweiterung erstellt, um diesen Prozess zu automatisieren. Dies funktioniert auch mit Konfigurationen für mehrere Geschäfte / Standorte. In dieser Erweiterung habe ich die CMS-Sitemap-Linkgenerierung wie folgt aktualisiert:
Sie finden den gesamten Quellcode aus meinem Repository
quelle