마 젠토 2 : 오름차순이 아닌 내림차순으로 정렬하는 기본값


11

좋아요. 카테고리별로 가격별로 정렬했습니다. Magento 2는 기본적으로 가격을 오름차순으로 설정합니다. 그러나 나는 가격을 내림차순으로 선호합니다.

catalog_category_view.xml내 테마 를 사용자 정의 하고 인수를 지정 하여이 작업을 수행 할 수는 product_list_toolbar있지만 확실히 이해할 수는 없습니다. 어떤 도움?


2
이 두 링크 mage2.pro/t/topic/1095mage2.pro/t/topic/1087/2를 사용하십시오 . 그것은 당신을 도울 것입니다
Manashvi Birla

답변:


24

파일을 복사하십시오.

vendor / magento / module-catalog / view / frontend / layout / 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가 제공하는 링크는이 기능을 제어하는 ​​파일에 대한 코어의 올바른 위치를 가리 키지 만 솔루션을 제공하지는 않습니다. 핵심 코드에서 이것을 찾지 못했기 때문에이 파일의 코드를 기반으로 추측했습니다.

공급 업체 / 마 젠토 / 모듈-카탈로그 / 블록 / 제품 / 제품 목록 /Toolbar.php

다른 .xml 파일의 다른 구성에서 구문을 사용했습니다.

$block->setDefaultDirection('desc')파일을 호출하려고 했습니다.

vendor / magento / module-catalog / view / frontend / templates / product / list / toolbar / sorter.phtml

파일이지만 작동하지 않았습니다. 이유를 추적하지는 않았지만 xml을 사용하여 기본값을 설정하면 효과가 있습니다.


1
@circlesix 간단한 질문은 솔루션이 훌륭하게 작동하지만 몇 가지 범주에만 적용하고 싶습니다. 관리자 패널의 각 카테고리에 대한 사용자 정의 레이아웃 업데이트 섹션의 referenceContainer 섹션을 드롭 할 수 있다고 생각했지만 아무런 영향을 미치지 않습니다. 어떤 아이디어?
caffeinehigh

아직 해결책을 찾지 못했지만 더 나은 방법을 찾을 수있을 때 여기에 게시 할 것입니다.
동그라미 ixix

1
@ user1837290을 사용하면 referenceContainer특정 범주 관리자의 "레이아웃 업데이트 XML"필드에서 청크를 시작하고 끝낼 수 있습니다 . 테마에서 전역 적으로 정렬을 재정의하지 않는 한 작동해야합니다. 관련 : magento.stackexchange.com/q/167048/2415
앞발

1
@circlesix 블록을 참조 할 때 이름 속성 만 제공하면됩니다
Miguel Felipe Guillen Calo

1
의견을 말하고 싶었지만 이것이 여전히 Magento 2.3에서 작동한다고 말하면 문제가 해결되었습니다!
Daniel Black

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>

사용자 정의 레이아웃 파일을 만들지 않으려는 경우 참조 솔루션 만 사용하고 내용을 포함하는 솔루션을 범주의 사용자 정의 XML에 추가 할 수도 있습니다.
Phil Birnie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.