বাক্সের বাইরে, না, ম্যাজেন্টোর Catalog -> Google Sitemapবৈশিষ্ট্য দ্বারা উত্পন্ন সাইটম্যাপ থেকে নির্দিষ্ট পণ্যগুলি বাদ দেওয়ার কোনও উপায় নেই ।
যদি আমি এই প্রোগ্রামটিমে কাজটি করতে যাচ্ছিলাম তবে ম্যাগান্টোর আধুনিক সংস্করণগুলি (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);
এটি কোনও স্ট্যান্ডার্ড ম্যাজেন্টো সিআরইউডি মডেল getCollectionনয় এবং কোনও সংগ্রহের অবজেক্ট ফেরত দেয় না। পরিবর্তে, getCollectionম্যানুয়ালি এই পণ্যগুলির জন্য ডেটাবেস অনুসন্ধান করে।
যদি আমি এমন কার্যকারিতা বাস্তবায়ন করতে যা যা সাইটের মানচিত্রে নির্দিষ্ট পণ্যগুলি প্রদর্শিত হতে বাধা দেয় তবে আমি চেষ্টা করব
একটি শ্রেণি সেই getCollectionপদ্ধতিটি পুনর্লিখন করে যা কল করে parent::getCollectionএবং তারপরে অ্যারে থেকে কোনও পণ্য নিজেই ফিল্টার করে
একটি শ্রেণীর পুনর্লিখন _addFilterযার উপর প্যারেন্টকে :: _ অ্যাড ফিল্টার পদ্ধতিটি কল করে এবং তারপরে _selectনির্দিষ্ট পণ্য (গুলি) বাদ দেওয়ার জন্য একটি অতিরিক্ত WHERE ধারা (গুলি) যুক্ত করে । একটি হ্যাক বাছাই করুন, তবে এটি একমাত্র পদ্ধতি যেখানে আপনার _selectডাটাবেসটি জিজ্ঞাসা করতে ব্যবহৃত বস্তুটিতে অ্যাক্সেস রয়েছে । আদর্শভাবে আপনি কিছু ধরণের গ্লোবাল / স্ট্যাটিক পতাকা রাখতে চান যাতে আপনি কেবল একবার আপনার নতুন WHERE ধারা (গুলি) যুক্ত করেছেন।