Magento 2: Comment obtenir le plan du site dans magento 2?

9

Comment nous créons la page du plan du site dans Magento 2 comme celle que nous avons dans Magento 1?

http://example.com/catalog/seo_sitemap/
Ashish Jagnani
la source
1
Parler de XML (sitemap.xml) / HTML Sitemap? fastcomet.com/tutorials/magento2/sitemap
Ankit Shah
Je veux que le plan du site HTML soit le même que dans Magento1.x
Ashish Jagnani
Pour générer un nouveau plan du site pour votre site, consultez ceci peut être possible, vous obtenez de l'aide emagentosupport.com/2018/12/…
Denish Vachhani

Réponses:

6

Magento 2: par défaut, ne fournit pas de sitemap HTML.

Peut utiliser l'extension gratuite:

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

Vous avez les options suivantes

Pages CMS : peut faire référence à l'article de Magento 1 /programming/5020257/creating-a-magento-sitemap-page puis le convertir en Magento 2 va vous apporter quelques conseils utiles pour les pages CMS

Pour les catégories et sous-catégories : Obtenir toutes les catégories disponibles, liste des sous-catégories dans magento 2

Pour les catégories de produits : Magento 2: obtenez la collection de produits en utilisant l'identifiant de catégorie

Ankit Shah
la source
79 $ chez Mageworx. Surpris, il n'y a pas encore de version gratuite. Le plan du site est un outil de référencement assez essentiel.
Rhand
Ouais pas par défaut. Alors, choisissez parmi les options que vous préférez
Ankit Shah
Magento fournit une option de plan du site. pls check: belvg.com/blog/how-to-generate-a-sitemap-in-magento-2-0.html
Jai
cela aidera également: magenticians.com/create-magento-2-sitemap
Jai
7

Depuis Magento version 2.1.8, la fonctionnalité du plan du site est incluse par défaut dans l'administrateur.

  • Définissez l'emplacement du plan du site: Marketing> SEO et recherche> Plan du site . Vous pouvez également générer manuellement le fichier sitemap à partir d'ici.

  • Configurer les paramètres cron: magasins> configuration> catalogue> plan du site XML

Voici les instructions de configuration des tâches cron récurrentes . Tout comme Magento 1.x, le cron du système appelle le script cron Magento, qui planifie les travaux.

nshiff
la source
1
Cela devrait être le bon, l'installation de mods tiers devrait être un dernier recours pour quelque chose déjà intégré. Merci les gars!
ajankuv
6

Magento 2 n'a pas d'URL de sitemap html pour la catégorie et les produits comme dans magento 1.xx. Pour cela, vous pouvez créer une page CMS comme 'sitemap /' et appeler un fichier phtml

qui comprendra le code personnalisé pour appeler toutes les catégories

Dans la page cms, appelez ceci:

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

puis en phtml, appelez ça:

<?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 cette façon, vous pouvez facilement créer une URL de plan de site dans Magento 2.

Abhinav Singh
la source
Salut, je veux créer mon propre plan du site html pouvez-vous s'il vous plaît m'aider .. comment utiliser ce code. @Riddhish Bhayani
Ask Bytes
2

Vous pouvez développer votre module qui étendra le module Magento par défaut module-sitemap.

Vous pouvez vous baser sur le Sitemapmodèle avec les méthodes \Magento\Sitemap\Model\Sitemap::generateXmlet _initSitemapItems.

2 approches:

  1. Créez un nouveau FO controlleret gérez l'affichage avec template/layoutetc.

  2. Générez un fichier statique en HTML qui sera servi par Webserverune URL personnalisée.

Ce ne sera pas très difficile.

Merci,

Franck Garnier
la source