Magento2:默认按价格降序而不是升序排序


11

好的,我可以按价格对我的类别进行排序。Magento 2默认将此价格提升。但我希望价格下降。

可以肯定的是,我可以通过自定义catalog_category_view.xml主题并添加一个参数来做到这一点,product_list_toolbar但我只是不太清楚。有什么帮助吗?


2
使用这两个链接mage2.pro/t/topic/1095mage2.pro/t/topic/1087/2。它会为您提供帮助
Manashvi Birla

Answers:


24

复制文件:

供应商/ magento /模块目录/视图/前端/布局/catalog_category_view.xml

app / design / frontend / {{Vender_Namespace}} / {{Theme_Name}} / Magento_Catalog / layout / catalog_category_view.xml

进入您的主题并将其添加到文件中:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <referenceBlock name="category.products.list">
                <action method="setDefaultDirection">
                    <argument name="dir" xsi:type="string">desc</argument>
                </action>
            </referenceBlock>
        </referenceContainer>
        <move element="category.view.container" destination="content" before="-"/>
    </body>
</page>

Manashvi指向内核中用于控制此功能的文件的正确位置的链接,但它们未提供解决方案。我没有在核心代码的任何地方找到它,所以我只是根据此文件中的代码进行了猜测:

供应商/ magento /模块目录/块/产品/产品列表/Toolbar.php

并在其他.xml文件的其他配置中使用了该语法。

我确实尝试了调用$block->setDefaultDirection('desc')文件:

供应商/ magento /模块目录/视图/前端/模板/产品/列表/工具栏/sorter.phtml

文件,但这不起作用。我没有找到原因,但是使用xml来设置默认值有效,所以我继续前进。


1
一个简单的问题,@ circlesix,您的解决方案效果很好,但是我只想将其应用于几个类别。我以为可以在管理面板中将每个类别的referenceContainer部分放入“自定义布局更新”部分,但这没有影响。有任何想法吗?
caffeinehigh16年

还没有找到解决方案,我会在这里提出更好的解决方案。
circleix

1
@ user1837290,您只需referenceContainer在特定类别的管理员的“布局更新XML”字段中以开头和结尾的块开头即可。只要您不覆盖主题中的全局排序,它就应该起作用。相关:magento.stackexchange.com/q/167048/2415
褴褛的爪子

1
@circlesix,您只需要在引用块时提供name属性即可
Miguel Felipe Guillen Calo '18

1
只是想发表评论并说从Magento 2.3开始仍然有效,它为我解决了这个问题!
丹尼尔·布莱克

5

您也可以使用较短的版本。对于特定类别,可以使用单独的文件:catalog_category_view_id_X.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
    <referenceBlock name="category.products.list">
        <action method="setDefaultDirection">
            <argument name="dir" xsi:type="string">desc</argument>
        </action>
    </referenceBlock>
</body>
</page>

如果您不想创建自定义布局文件,也可以将的解决方案(仅使用参考块并包含内容)添加到类别中的Custom XML中。
Phil Birnie
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.