わかりましたので、カテゴリを価格順に並べ替えます。Magento 2は、デフォルトでこれを価格の上昇に設定しています。しかし、私はそれが価格の降順であることを望みます。
catalog_category_view.xml
テーマをカスタマイズして引数を設定することでこれを実行できると確信していますがproduct_list_toolbar
、それを理解することはできません。何か助けは?
わかりましたので、カテゴリを価格順に並べ替えます。Magento 2は、デフォルトでこれを価格の上昇に設定しています。しかし、私はそれが価格の降順であることを望みます。
catalog_category_view.xml
テーマをカスタマイズして引数を設定することでこれを実行できると確信していますがproduct_list_toolbar
、それを理解することはできません。何か助けは?
回答:
ファイルをコピーします。
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がこの機能を制御するファイルのコア内の適切な場所を指すリンクは、ソリューションを提供していません。これはコアコードのどこにも見つからなかったので、このファイルのコードに基づいて推測しました:
vendor / magento / module-catalog / Block / Product / ProductList / Toolbar.php
他の.xmlファイルの他の構成で構文を使用しました。
私は$block->setDefaultDirection('desc')
ファイルを呼び出してみました:
vendor / magento / module-catalog / view / frontend / templates / product / list / toolbar / sorter.phtml
ファイルがこれは動作しませんでした。私は理由を突き止めていませんが、デフォルトを設定するためにxmlを使用して機能したので、次に進みました。
referenceContainer
、特定のカテゴリの管理者の[Layout Update XML]フィールドに、開始と終了のチャンクを置くだけです。テーマの並べ替えをグローバルにオーバーライドしない限り、うまくいくはずです。関連:magento.stackexchange.com/q/167048/2415
短いバージョンも使用できます。特定のカテゴリについては、別のファイルを使用できます: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>