Magento 2: ¿Cómo puedo obtener el mapa del sitio en magento 2?


9

¿Cómo creamos la página del mapa del sitio en Magento 2 como la que tenemos en Magento 1?

http://example.com/catalog/seo_sitemap/

1
¿Hablando de XML (sitemap.xml) / HTML Sitemap? fastcomet.com/tutorials/magento2/sitemap
— Ankit Shah

Quiero el mapa del sitio HTML igual que en Magento1.x
— Ashish Jagnani

Para generar un nuevo mapa del sitio para su sitio, puede ser posible que obtenga ayuda emagentosupport.com/2018/12/…
— Denish Vachhani

Respuestas:


6

Magento 2: por defecto no proporciona HTML Sitemap.

Puede usar la extensión gratuita:

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

Tienes las siguientes opciones

Páginas de CMS : puede consultar el artículo de Magento 1 /programming/5020257/creating-a-magento-sitemap-page Luego convertirlo a Magento 2 será algo útil para las páginas de CMS

Para Categorías y Subcategorías : Obtener todas las categorías disponibles, lista de subcategorías en magento 2

Para las categorías de productos : Magento 2: obtenga la colección de productos utilizando el ID de categoría


$ 79 dólares en Mageworx. Sorprendido aún no hay una versión gratuita. El mapa del sitio es muy importante en cuanto a SEO.
— Rhand

Sí, no por defecto. Así que elige entre las opciones que prefieras
— Ankit Shah el

Magento proporciona la opción de mapa del sitio. Por favor, consulte: belvg.com/blog/how-to-generate-a-sitemap-in-magento-2-0.html
— Jai


7

A partir de la versión 2.1.8 de Magento, la funcionalidad del mapa del sitio está incluida en el administrador de forma predeterminada.

  • Defina la ubicación del mapa del sitio: Marketing> SEO y búsqueda> Mapa del sitio . También puede generar manualmente el archivo de mapa del sitio desde aquí.

  • Configure los ajustes cron: Tiendas> Configuración> Catálogo> Mapa del sitio XML

Aquí hay instrucciones para configurar trabajos cron recurrentes . Al igual que Magento 1.x, el cron del sistema llama al script cron de Magento, que programa los trabajos.


1
Esta debería ser la correcta, la instalación de modificaciones de terceros debería ser el último recurso para algo ya incorporado. ¡Gracias, muchachos!
— ajankuv

6

Magento 2 no tiene una URL de mapa de sitio HTML para la categoría y productos como en magento 1.xx. Para esto, puede crear una página CMS como 'sitemap /' y llamar a un archivo phtml

que incluirá el código personalizado para llamar a todas las categorías

En la página de cms, llame a esto:

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

luego en phtml, llame a esto:

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

De esta manera, puede crear fácilmente una URL de mapa del sitio en Magento 2.


Hola, quiero crear mi propio mapa del sitio html. ¿Pueden ayudarme? ¿Cómo usar este código? @Riddhish Bhayani
— Pregunte Bytes el

2

Puede desarrollar su módulo que extenderá el módulo predeterminado de Magento module-sitemap .

Puede basarse en el Sitemapmodelo con el\Magento\Sitemap\Model\Sitemap::generateXml_initSitemapItems métodos y .

2 enfoques:

  1. Cree una nueva FO controllery administre la pantalla contemplate/layout etc.

  2. Genere un archivo estático en HTML que será enviado Webservera una URL personalizada.

No será muy difícil.

Gracias,



Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.