Magento 2: Як можна отримати мапу сайту в magento 2?


9

Як ми створюємо сторінку сайту в Magento 2, як і у Magento 1?

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

1
Якщо говорити про XML (sitemap.xml) / HTML Sitemap? fastcomet.com/tutorials/magento2/sitemap
Ankit Shah

Я хочу, щоб HTML-карта сайту була такою ж, як і в Magento1.x
Ashish Jagnani

Щоб створити нову мапу сайту для вашого сайту, зверніться до цього, можливо, ви можете отримати допомогу emagentosupport.com/2018/12/…
Denish Vachhani

Відповіді:


6

Magento 2: За замовчуванням не надається HTML Sitemap.

Можна використовувати безкоштовне розширення:

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

У вас є наступні варіанти

  • Використовуйте плагін, як-то http://www.mageworx.com/magento-2-sitemap-extension.html
  • Створіть сторінку CMS та покладіть посилання
  • Зробіть спеціальний модуль для програмного генерування HTML Sitemap
  • Використовуйте посилання Модуль / CMS для доступу до цього

Сторінки CMS : Можна посилатись на Magento 1 Стаття /programming/5020257/creating-a-magento-sitemap-page Потім перетворіть його на Magento 2, що допоможе для сторінок CMS

Для категорій і підкатегорій : Отримання всіх доступних категорій, перелік підкатегорій в magento 2

Для категорій Продукт : Magento 2: отримати колекцію товару, використовуючи ідентифікатор категорії


$ 79 доларів у Mageworx. Здивовано, що ще немає безкоштовної версії. Карта сайту дуже важлива для SEO.
rhand

Ні за замовчуванням. Тож вибирайте з варіантів, які вам більше подобаються
Анкіт Шах

Magento надає варіант Sitemap. pls check: belvg.com/blog/how-to-generate-a-sitemap-in-magento-2-0.html
Jai

це також допоможе: magenticians.com/create-magento-2-sitemap
Jai

7

Станом на версію Magento версії 2.1.8 функціонал мапи сайту за замовчуванням включений у адміністратор.

  • Визначте місце розташування карти : Маркетинг> SEO та пошук> Карта сайту . Ви також можете генерувати файл Sitemap вручну звідси.

  • Налаштування параметрів cron: Магазини> Конфігурація> Каталог> XML Sitemap

Ось інструкції щодо налаштування повторюваних завдань cron . Так само, як Magento 1.x, cron системи викликає скрипт Magento cron, який планує завдання.


1
Це має бути правильним, встановлення сторонніх модників має бути крайнім засобом для вже вбудованого. Дякую, хлопці!
ajankuv

6

У Magento 2 немає URL-адреса сайту html для категорії та продуктів, таких як magento 1.xx. Для цього ви можете створити сторінку CMS на зразок 'sitemap /' та викликати файл phtml

який буде включати в себе спеціальний код для виклику всіх категорій

На сторінці cms зателефонуйте до цього:

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

тоді в phtml викликайте це:

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

Таким чином ви можете легко створити URL-адресу мапи в Magento 2.


Привіт, я хочу створити свій власний HTML-файл сайту, чи можете ви мені допомогти .. як користуватися цим кодом. @Riddhish Bhayani
Запитувати байтів

2

Ви можете розробити свій модуль, який розширить модуль Magento за замовчуванням module-sitemap.

Ви можете базуватися на Sitemapмоделі з методами \Magento\Sitemap\Model\Sitemap::generateXmlі _initSitemapItems.

2 підходи:

  1. Створіть новий FO controllerі керуйте дисплеєм template/layoutтощо.

  2. Створіть статичний файл у HTML, який подаватиметься за Webserverвласною URL-адресою.

Це буде не дуже складно.

Дякую,



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.