Nein, es gibt keine Möglichkeit, bestimmte Produkte aus der von Magento erstellten Sitemap auszuschließen Catalog -> Google Sitemap
.
Wenn ich dies programmgesteuert ausführen wollte, verwenden moderne Versionen von Magento (in der 1.7.x-Verzweigung aktiviert, möglicherweise in früheren / EE-Versionen vorhanden) die folgende Ressourcenmodellklasse
Mage_Sitemap_Model_Resource_Catalog_Product
um eine Produktliste abzurufen.
#File: app/code/core/Mage/Sitemap/Model/Sitemap.php
$collection = Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId);
Dies ist kein standardmäßiges Magento CRUD-Modell und getCollection
gibt kein Sammlungsobjekt zurück. getCollection
Fragen Sie stattdessen die Datenbank für diese Produkte manuell ab.
Wenn ich Funktionen implementieren würde, die verhindern, dass bestimmte Produkte in der Sitemap angezeigt werden, würde ich es auch versuchen
Eine Klasse schreibt die aufrufende getCollection
Methode um parent::getCollection
und filtert dann manuell alle Produkte aus dem Array heraus
Eine Klassenumschreibung, bei _addFilter
der die übergeordnete Methode :: _addFilter aufgerufen und dann eine zusätzliche WHERE-Klausel _select
zum Ausschließen der bestimmten Produkte hinzugefügt wird . Eine Art Hack, aber es ist die einzige Methode, bei der Sie Zugriff auf das _select
Objekt haben, mit dem die Datenbank abgefragt wird. Idealerweise möchten Sie eine Art globales / statisches Flag haben, sodass Sie Ihre neuen WHERE-Klauseln nur einmal hinzugefügt haben.