Magento 2:magento 2でサイトマップを取得するにはどうすればよいですか?


9

Magento 2でMagento 1と同じようにサイトマップページを作成するにはどうすればよいですか?

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

1
XML(sitemap.xml)/ HTMLサイトマップについて話しますか?fastcomet.com/tutorials/magento2/sitemap
Ankit Shah

Magento1.xと同じHTMLサイトマップが必要です
Ashish Jagnani

サイトの新しいサイトマップを生成するには、これが可能である可能性があることを参照してください。emagentosupport.com/ 2018/12 /…
Denish Vachhani

回答:


6

Magento 2:デフォルトではHTMLサイトマップを提供しません。

無料の拡張機能を使用できます:

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

次のオプションがあります

CMSページ:Magentoの1条参照することができます/programming/5020257/creating-a-magento-sitemap-pageを Magentoの2に変換後になるつもりいくつかの何参考になっCMSページについて

カテゴリー&サブカテゴリーの場合Magentoの中で使用可能なすべてのカテゴリ、サブカテゴリのリストを取得する2

カテゴリー製品の場合Magento 2:カテゴリーIDを使用して製品コレクションを取得します


Mageworxで$ 79ドル。まだ無料版がないのには驚きました。サイトマップは、SEOに関して非常に重要です。
rhand 2016年

はい、デフォルトではありません。だからあなたが好むオプションから選んでください
Ankit Shah

Magentoはサイトマップオプションを提供します。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&検索>サイトマップ。ここからサイトマップファイルを手動で生成することもできます。

  • cron設定の構成:ストア>構成>カタログ> XMLサイトマップ

定期的なcronジョブ設定する手順は次のとおりです。Magento 1.xと同様に、システムのcronは、ジョブをスケジュールするMagento cronスクリプトを呼び出します。


1
これは正しいものである必要があります。サードパーティのModをインストールすることは、すでに組み込まれているものの最後の手段になるはずです。
ajankuv 2018年

6

Magento 2には、magento 1.xxのようなカテゴリと製品のhtmlサイトマップURLがありません。このため、「sitemap /」のようなCMSページを作成し、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>

これにより、Magento 2でサイトマップURLを簡単に作成できます。


こんにちは、私は私自身のhtmlサイトマップを作成したいと思います。助けてください。@Riddhish Bhayani
Ask Bytes

2

デフォルトのMagentoモジュールを拡張するモジュールを開発できますmodule-sitemap

およびメソッドを使用してSitemapモデルに基づくことができます。\Magento\Sitemap\Model\Sitemap::generateXml_initSitemapItems

2つのアプローチ:

  1. 新しいものFO controllerを作成し、ディスプレイtemplate/layoutなどを管理します。

  2. WebserverカスタムURL によって提供されるHTMLの静的ファイルを生成します。

それほど難しくありません。

おかげで、



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.