Answers:
在Magento 2中,您现在实际上可以通过xml文件删除“比较产品”功能。比较产品模块在vendor/magento/module-catalog/view/frontend/layout/default.xml
您可以通过default.xml
在以下主题中添加文件到主题中来删除它:<theme_dir>/Magento_Catalog/layout/default.xml
在其中删除块,如下所示:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
<referenceBlock name="wishlist_sidebar" remove="true" />
</body>
</page>
您可以将以下xml指令添加到自定义主题的默认xml文件中,该文件应位于自定义主题中/app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xml
或位于Magento_Catalog/layout/default.xml
自定义主题中:
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
<referenceBlock name="view.addto.compare" remove="true" />
<referenceBlock name="view.addto.wishlist" remove="true" />
摆脱了
要从类别页面(目录产品列表)中删除要比较的内容,请使用:
<referenceBlock name="category.product.addto.compare" remove="true"/>
<referenceBlock name="category.product.addto.compare" remove="true"/>
从目录产品列表中删除链接。
<referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>
同时从目录搜索结果中删除比较功能的内容。
我为所有比较块添加了源代码。对于2.3,这是完整列表。这还将从标头中删除比较链接。
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<!-- Remove compare -->
<referenceBlock name="catalog.compare.link" remove="true" />
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
<referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>
<referenceBlock name="category.product.addto.compare" remove="true"/>
<referenceBlock name="crosssell.product.addto.compare" remove="true" />
<referenceBlock name="related.product.addto.compare" remove="true" />
<referenceBlock name="upsell.product.addto.compare" remove="true" />
<referenceBlock name="view.addto.compare" remove="true" />
</body>
</page>
在“ 商店”>“配置”>“客户”>“愿望清单”上禁用“ 愿望清单”,并禁用“比较”功能,将此行粘贴在主题的Magento_Catalog / layout / default.xml下方。
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="catalog.compare.link" remove="true"/>
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
</body>
</page>
在以下模板中将$ showCompare设置为 false:
Magento / Catalog / view / frontend / templates / product / list / items.phtml Magento / Catalog / view / frontend / templates / product / widget / new / content / new_grid.phtml Magento / Catalog / view / frontend / templates / product / widget / new / content / new_list.phtml Magento / Catalog / view / frontend / templates / product / widget / content / grid.phtml
从以下模板中删除比较相关人员:
Magento / Catalog / view / frontend / templates / product / list.phtml Magento / Catalog / view / frontend / templates / product / listing.phtml Magento / Wishslist / view / frontend / templates / item / configure / addto.phtml
参考:https : //coderwall.com/p/vsqmbw/remove-product-compare-functionality-on-magento-2-frontend
Magento为其提供命令行实用程序示例
php bin/magento module:disable -f Magento_Wishlist
由于Magento愿望清单也依赖于其他模块,因此不带[-f]使用不会禁用或启用该模块,并且会显示警告,例如
使用带有[-f]标志的命令后将解决此问题
强制使用命令时,请检查警告
警报:您使用了--force选项。结果,模块可能无法正常运行。
您也可以在此处查看完整的信息,http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable-模组
更新:在Magento 2核心更新之后,klara的答案现在是禁用比较功能的最佳方法。请在下面阅读!
要禁用“愿望清单”功能,需要进入管理,在“ 商店”>“配置”>“客户”>“愿望清单”下,然后选择“已启用:否”。
要禁用比较功能,管理中没有选项。您需要覆盖module-catalog/view/frontend/templates/product/list.phtml
模板。
为此,您需要将我上面命名的文件的内容复制到位于下的主题内的新文件中<theme_dir>/Magento_Catalog/templates/product/list.phtml
。然后,您要删除有关的行:
<?php
$compareHelper = $this->helper('Magento\Catalog\Helper\Product\Compare');
?>
<a href="#"
class="action tocompare"
title="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
aria-label="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
data-post='<?php /* @escapeNotVerified */ echo $compareHelper->getPostDataParams($_product); ?>'
role="button">
<span><?php /* @escapeNotVerified */ echo __('Add to Compare') ?></span>
</a>
这些在Magento 2.0.1中的111至121行
禁用边栏:
<body>
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
</body>
要删除"Add to compare"
产品页面上的链接,您需要覆盖Magento_Catalog/templates/product/view/addto.phtml
主题中的文件并在那里删除比较锚点。这样,您可以保留愿望清单,但删除比较功能。
对于Magento 2.1.x
在/Magento_Catalog/layout/default.xml中将default.xml文件添加到您的主题中
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="category.product.addto.compare" remove="true"/>
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
</body>
</page>
这是此处提供的其他解决方案的扩展。使用文件/app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xml
并添加以下内容
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
<referenceBlock name="catalog.compare.link" remove="true"/>
<referenceBlock name="related.product.addto.compare" remove="true"/>
<referenceBlock name="view.addto.compare" remove="true"/>
<referenceBlock name="upsell.product.addto.compare" remove="true"/>
</body>
</page>
在针对各个产品页面尝试了上述所有方法之后,我发现了一个对于我而言很重要的文件,该文件具有已安装的主题,但使用了自己的子主题addtocart.phtml
。其他选项适用于网格类别视图和列表类别视图(前面提到的list.phtml
,但在各个产品页面上:
<a href="#" data-post='<?php /* @escapeNotVerified */ echo $compareHelper->getPostDataParams($_product);?>'
data-role="add-to-links"
class="action tocompare">
<i class="fa fa-retweet icons"></i>
<span><?php /* @escapeNotVerified */ echo __('Compare') ?></span>
</a>
这需要被注释掉。数小时的尝试,正是这个文件。
如果有人发现其他情况,请告诉我!
M2.1快速简便的解决方案。
如果您不想创建自定义主题和/或希望从后端工作,则可以在后端执行以下操作。导航到要更改的cms页面,类别或产品页面。类别页面示例:在设计->布局更新XML下,添加以下代码:
<referenceContainer name="content">
<referenceBlock name="catalog.compare.sidebar" remove="true" />
<referenceContainer name="sidebar.additional" remove="true" />
</referenceContainer>
注意:如果要在侧边栏中保留其他块,请将附加容器设置为“ false”,如下所示:
<referenceContainer name="content">
<referenceContainer name="sidebar.additional" remove="false" />
</referenceContainer>
如其他答案中所述,可以通过后端禁用愿望清单。
有一个FOSS模块可以删除每个商店视图级别的比较功能:
https://github.com/Joshua29LK/disable-compare-magento-2
我做了简短的评论:
我在Magento 2.3.3上使用Ultimo主题。我无法从主题的catalog_product_view.xml文件中禁用比较链接,因为设置不是来自那里,而是位于:
vendor/magento/module-catalog/view/frontend/layout/catalog_product_view.xml
我寻求快速而肮脏的解决方案,只需删除以下内容:
<container name="product.info.social" label="Product social links container" htmlTag="div" htmlClass="product-social-links">
<block class="Magento\Catalog\Block\Product\View" name="product.info.addto" as="addto" template="Magento_Catalog::product/view/addto.phtml">
<block class="Magento\Catalog\Block\Product\View\AddTo\Compare" name="view.addto.compare" after="view.addto.wishlist"
template="Magento_Catalog::product/view/addto/compare.phtml" >
<arguments>
<argument name="addToCompareViewModel" xsi:type="object">Magento\Catalog\ViewModel\Product\Checker\AddToCompareAvailability</argument>
</arguments>
</block>
</block>
<block class="Magento\Catalog\Block\Product\View" name="product.info.mailto" template="Magento_Catalog::product/view/mailto.phtml"/>
</container>
比较按钮永远消失了,但是,如果您执行Magento升级,它将返回,因此需要再次将其删除。
您可以使用此付费模块禁用magento 2($ 20)中的比较。
http://www.mage20.com/magento-2-disable-compare.html
特点: