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/

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


$ 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


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.


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.


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,



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.