カスタムプラグインを使用して次の方法を試してください。以下のように、カスタム拡張機能にプラグインコードを追加してください
/Vendor/Module/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>
/Vendor/Module/Plugin/Catalog/Block/Product/ProductList/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などに増やすと、質問で述べたように並べ替えが無効になります。とにかく答えてくれてありがとう。あなたの努力のために。+1