Magento 2'deki site haritası sayfasını Magento 1'deki gibi nasıl oluştururuz ?
http://example.com/catalog/seo_sitemap/
Magento 2'deki site haritası sayfasını Magento 1'deki gibi nasıl oluştururuz ?
http://example.com/catalog/seo_sitemap/
Yanıtlar:
Magento 2: Varsayılan olarak HTML Site Haritası sağlamıyor.
Ücretsiz Uzantıyı kullanabilir:
https://www.mageplaza.com/magento-2-seo-extension/
Aşağıdaki seçenekleriniz var
CMS Sayfalar : Magento 1 Madde başvurmak Can /programming/5020257/creating-a-magento-sitemap-page Sonra Magento 2 olacak olacak Bazı Ne Yararlı CMS Sayfalar dönüştürelim
Kategoriler ve Alt Kategoriler için : magento 2 içindeki tüm mevcut kategori, alt kategori listesini alma
Kategoriler için Ürün : Magento 2: kategori kimliğini kullanarak ürün koleksiyonu alın
Magento 2.1.8 sürümünden itibaren site haritası işlevselliği varsayılan olarak yöneticiye dahil edilmiştir.
Site haritası konumunu tanımlayın: Pazarlama> SEO ve Arama> Site Haritası . Site haritası dosyasını buradan manuel olarak da oluşturabilirsiniz.
Cron ayarlarını yapılandırma: Mağazalar> Yapılandırma> Katalog> XML Site Haritası
İşte tekrarlayan cron işlerini ayarlamak için talimatlar . Tıpkı Magento 1.x gibi, sistemin cronu işleri planlayan Magento cron betiğini çağırır.
Magento 2, kategori ve magento 1.xx gibi ürünler için html site haritası URL'sine sahip değil. Bunun için 'site haritası /' gibi bir CMS sayfası oluşturabilir ve bir phtml dosyasını çağırabilirsiniz
tüm kategoriyi çağırmak için özel kodu içerecek
Cms sayfasında şunu arayın:
{{block class="Magento\Framework\View\Element\Template" template="Magento_Theme::sitemap.phtml" name="customsitemap"}}
sonra phtml'de şunu çağırın:
<?php
$objectManagerr = \Magento\Framework\App\ObjectManager::getInstance();
$categoryFactory = $objectManagerr->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$categoryy = $categoryFactory->create()
->addAttributeToSelect('*');
//->addAttributeToFilter('is_active',1)
//->addAttributeToFilter('is_anchor',1);
$excludedCategory = array(0);
?>
<ul class="sitelist">
<?php foreach ($categoryy as $cc): ?>
<?php if(!in_array($cc->getId(), $excludedCategory)):?>
<div class = "sitemap-list" style="float:left;">
<?php if ($cc->getLevel()==2):?>
<li>
<h3><a href="<?php echo $cc->getUrl(); ?>"><?php echo $cc->getName(); ?></a></h3>
<?php
if($cc->getChildren())
{
$sub = explode(",", $cc->getChildren());
$categoryFactorysub = $objectManagerr->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$categoryysub = $categoryFactorysub->create()
->addAttributeToSelect('*');
$subcat=$categoryysub->addFieldToFilter('entity_id', array('in' =>$sub));
//$subcat->printlogquery(true);exit;
?>
<ul style="margin-left:15px;">
<?php foreach ($subcat as $subcategories){ ?>
<?php if ($subcategories->getLevel()==3):?>
<div class = "sitemap-list">
<li>
<?php if($subcategories->getImageUrl()): ?>
<div class="mega-menu-ad">
<img src="<?php echo ($subcategories->getImageUrl()); ?>" width="25" height="25" />
</div>
<?php endif; ?>
<a href="<?php echo $subcategories->getUrl(); ?>"><?php echo $subcategories->getName(); ?></a>
<?php
if($subcategories->getChildren())
{
$subSubCat = explode(",", $subcategories->getChildren());
$subsubCatFactory = $objectManagerr->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$subSubCatCollection = $subsubCatFactory->create()
->addAttributeToSelect('*');
$subSubCollection=$subSubCatCollection->addFieldToFilter('entity_id', array('in' =>$subSubCat));
?>
<ul style="margin-left:20px;">
<?php foreach ($subSubCollection as $subSubcategories){ ?>
<div class = "sitemap-list">
<li>
<?php if($subSubcategories->getImageUrl()): ?>
<div class="mega-menu-ad">
<img src="<?php echo ($subSubcategories->getImageUrl()); ?>" width="25" height="25" />
</div>
<?php endif; ?>
<a href="<?php echo $subSubcategories->getUrl(); ?>"><?php echo $subSubcategories->getName()?></a>
</li>
</div>
<?php } ?>
</ul>
<?php } ?>
</li>
</div>
<?php endif;?>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php endif;?>
</div>
<?php endif;?>
<?php endforeach; ?>
</ul>
Bu şekilde Magento 2'de kolayca bir site haritası URL'si oluşturabilirsiniz.
Varsayılan Magento modülünü genişletecek modülünüzü geliştirebilirsiniz module-sitemap
.
Ve yöntemleriyle Sitemap
modele dayanabilirsiniz .\Magento\Sitemap\Model\Sitemap::generateXml
_initSitemapItems
2 yaklaşım:
Yeni bir tane oluşturun FO controller
ve ekranı template/layout
vb . İle yönetin .
HTML'de Webserver
özel bir URL tarafından sunulacak statik bir dosya oluşturun .
Çok zor olmayacak.
Teşekkürler,
Ücretsiz ve özelleştirilebilir bu eklentiyi kontrol edin https://marketplace.magento.com/vsourz-html-sitemap.html
Programlamadan işi yapmanıza yardımcı olacak Site Haritası uzantısını ( https://marketplace.magento.com/fme-advanced-sitemap-generator.html ) kullanabilirsiniz VEYA bu makaleye göz atabilirsiniz: https : //www.fmeextensions.com/blog/generate-google-optimized-sitemap-xml-in-magento-2/