Magento2: How to remove default sort option from category page?
-
11-04-2021 - |
Question
I want to remove the default sort option from the category page.
I have tried the below code but is not working.
unset($options['position']);
unset($options['name']);
unset($options['price']);
Position sort option is removed but name and price is not removing.
OTHER TIPS
can be add a condition in theme templates file Magento_Catalog/templates/product/list/toolbar/sorter.phtml like
<select id="sorter" data-role="sorter" class="sorter-options">
<?php foreach ($block->getAvailableOrders() as $_key => $_order) :?>
<?php if ($_key != 'price' && $_key != 'name') : // remove "price" and "name"?>
<option value="<?= $block->escapeHtmlAttr($_key) ?>"
<?php if ($block->isOrderCurrent($_key)) :?>
selected="selected"
<?php endif; ?>
>
<?= $block->escapeHtml(__($_order)) ?>
</option>
<?php endif; ?>
<?php endforeach; ?>
</select>
May be also good idea to use Plugin on catalog Config and unset Position with
public function afterGetAttributeUsedForSortByArray(Config $config, $result)
{
if (is_array($result) && isset($result[Category::KEY_POSITION])) {
unset($result[Category::KEY_POSITION]);
}
return $result;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange