Ні, ящик не має можливості виключати певні продукти з мапи сайту, створених функцією Magento Catalog -> Google Sitemap
.
Якщо я збирався займатись цим програмним шляхом, то сучасні версії Magento (перевірені у відділенні 1.7.x, це може бути в попередніх версіях / версіях EE) використовують наступний клас моделей ресурсів
Mage_Sitemap_Model_Resource_Catalog_Product
отримати список продуктів.
#File: app/code/core/Mage/Sitemap/Model/Sitemap.php
$collection = Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId);
Це не стандартна модель Magento CRUD і getCollection
не повертає об'єкт колекції. Натомість, getCollection
вручну запитує базу даних для цих продуктів.
Якби я збирався реалізувати функціональність, яка заважала певним продуктам відображатися на карті сайту, я б спробував будь-який
Клас перезаписує getCollection
метод, який викликає parent::getCollection
, а потім вручну фільтрує будь-які продукти з масиву
_addFilter
Перепишіть клас, у якому викликає метод батьків: _ _ addFilter, а потім додає додаткові пункти WHERE до, _select
щоб виключити конкретні продукти. Сортування хак, але це єдиний метод, коли ви маєте доступ до _select
об'єкта, який використовується для запиту бази даних. В ідеалі ви хочете мати якийсь глобальний / статичний прапор, тому ви лише один раз додали новий пункт WHERE.