사용자 정의 플러그인을 사용하여 다음과 같이 시도하십시오. 아래와 같이 사용자 정의 확장에 플러그인 코드를 추가하십시오
/ 공급 업체 / 모듈 /etc/frontend/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Catalog\Block\Product\ProductList\Toolbar">
<plugin name="vendormodule_catalog_block_product_listproduct_toolbar" type="Vendor\Module\Plugin\Catalog\Block\Product\ProductList\Toolbar"/>
</type>
</config>
/ 공급 업체 / 모듈 / 플러그인 / 카탈로그 / 블록 / 제품 / 제품 목록 /Toolbar.php
<?php
namespace Vendor\Module\Plugin\Catalog\Block\Product\ProductList;
class Toolbar
{
/**
* @var \Magento\Framework\Registry
*/
protected $_coreRegistry;
public function __construct(\Magento\Framework\Registry $coreRegistry)
{
$this->_coreRegistry = $coreRegistry;
}
/**
* @param \Magento\Catalog\Block\Product\ProductList\Toolbar $toolbar
* @param \Magento\Framework\Data\Collection $collection
* @return array
*/
public function beforeSetCollection(
\Magento\Catalog\Block\Product\ProductList\Toolbar $toolbar,
$collection
){
$collection->getSelect()->group('e.entity_id')->order('{YOUR CUSTOM ATTRIBUTE CODE} ASC');
$collection->getSize();
return [$collection];
}
}
문제가 발생하면 알려주세요.
1-9
내 맞춤 제품 속성에 값을 입력하면 값이 9, 10, 11과 같이 9를 올리면 제대로 작동합니다. 내 질문에서 말한 정렬을 파괴합니다. 어쨌든 대답 해 주셔서 감사합니다. 노력하십시오. +1