Magento 2: Bagaimana saya bisa mendapatkan sitemap di magento 2?

9

Bagaimana kita membuat halaman peta situs di Magento 2 seperti yang kita miliki di Magento 1?

http://example.com/catalog/seo_sitemap/
Ashish Jagnani
sumber
1
Berbicara Tentang XML (sitemap.xml) / HTML Sitemap? fastcomet.com/tutorials/magento2/sitemap
Ankit Shah
Saya ingin peta situs HTML sama seperti di Magento1.x
Ashish Jagnani
Untuk membuat sitemap baru untuk situs Anda, rujuk ini mungkin Anda mendapatkan bantuan emagentosupport.com/2018/12/…
Denish Vachhani

Jawaban:

6

Magento 2: Secara default tidak menyediakan Peta Situs HTML.

Dapat menggunakan Ekstensi Gratis:

https://www.mageplaza.com/magento-2-seo-extension/

Anda memiliki opsi berikut

Halaman CMS : Dapat merujuk Artikel Magento 1 /programming/5020257/creating-a-magento-sitemap-page Kemudian Konversikan ke Magento 2 akan menjadi Beberapa Apa yang Bermanfaat untuk Halaman CMS

Untuk Kategori & Sub Kategori : Mendapatkan semua kategori yang tersedia, daftar subkategori di magento 2

Untuk Kategori Produk : Magento 2: dapatkan koleksi produk menggunakan kategori id

Ankit Shah
sumber
$ 79 dolar di Mageworx. Terkejut belum ada versi gratis. Sitemap adalah SEO bijak yang cukup vital.
ulangi
Ya tidak secara default. Jadi pilih dari opsi yang Anda sukai
Ankit Shah
Magento menyediakan opsi peta situs. mohon periksa: belvg.com/blog/how-to-generate-a-sitemap-in-magento-2-0.html
Jai
ini juga akan membantu: magenticians.com/create-magento-2-sitemap
Jai
7

Pada Magento versi 2.1.8, fungsi sitemap termasuk dalam admin secara default.

  • Tetapkan lokasi sitemap: Pemasaran> SEO & Pencarian> Peta Situs . Anda juga dapat membuat file sitemap secara manual dari sini.

  • Konfigurasikan pengaturan cron: Toko> Konfigurasi> Katalog> Peta Situs XML

Berikut adalah instruksi untuk mengatur pekerjaan cron berulang . Sama seperti Magento 1.x, cron sistem memanggil skrip cron Magento, yang menjadwalkan pekerjaan.

nshiff
sumber
1
Ini harus yang benar, memasang mod pihak ketiga harus menjadi pilihan terakhir untuk sesuatu yang sudah ada. Terima kasih teman-teman!
ajankuv
6

Magento 2 tidak memiliki url sitemap html untuk kategori dan produk seperti di magento 1.xx. Untuk ini, Anda dapat membuat halaman CMS seperti 'sitemap /' dan memanggil file phtml

yang akan menyertakan kode khusus untuk memanggil semua kategori

Di halaman cms, panggil ini:

{{block class="Magento\Framework\View\Element\Template" template="Magento_Theme::sitemap.phtml" name="customsitemap"}}

lalu dalam phtml, panggil ini:

<?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>

Dengan cara ini Anda dapat dengan mudah membuat URL sitemap di Magento 2.

Abhinav Singh
sumber
Hai, saya ingin membuat sitemap html saya sendiri, tolong bantu saya .. bagaimana cara menggunakan kode ini. @Riddhish Bhayani
Tanyakan Bytes
2

Anda dapat mengembangkan modul Anda yang akan memperpanjang modul Magento default module-sitemap.

Anda dapat berdasarkan pada Sitemapmodel dengan \Magento\Sitemap\Model\Sitemap::generateXmldan _initSitemapItemsmetode.

2 pendekatan:

  1. Buat yang baru FO controllerdan kelola tampilan dengan template/layoutdll.

  2. Buat file statis dalam HTML yang akan dilayani oleh Webserverke URL khusus.

Itu tidak akan terlalu sulit.

Terima kasih,

Franck Garnier
sumber