Magento小部件块中的分页

Magento小部件块中的分页,magento,magento2,Magento,Magento2,嗨,有没有办法在小部件块中进行分页。例如,有一个id为355的类别。我想在页面中显示该类别的产品。所以我使用的是widget(以下代码) 。但页面中显示的该类别产品最多有155种。但是对于155产品,页面加载时间太长。因此,如果有分页,那么它很容易加载产品 事实上是,pager是为Magento\CatalogWidget\Block\Product\ProductsList实现的,您只需使用show\u pager=“1”激活它,并定义每页显示多少产品products\u per\u page

嗨,有没有办法在小部件块中进行分页。例如,有一个id为355的类别。我想在页面中显示该类别的产品。所以我使用的是widget(以下代码)


。但页面中显示的该类别产品最多有155种。但是对于155产品,页面加载时间太长。因此,如果有分页,那么它很容易加载产品

事实上,pager是为Magento\CatalogWidget\Block\Product\ProductsList实现的,您只需使用show\u pager=“1”激活它,并定义每页显示多少产品products\u per\u page=“6”(如果忽略此参数,则默认值为5)

更新: 我想您需要添加参数page_var_name=“np”,其中'np'是分页参数的名称(您可以根据自己的方便命名),如下所示,这应该可以解决分页问题:

您的代码应该如下所示:

{{widget type="Magento\CatalogWidget\Block\Product\ProductsList" show_pager="1" products_per_page="6" products_count="160" page_var_name="np" template="Magento_CatalogWidget::product/widget/content/grid.phtml" conditions_encoded="^[`1`:^[`type`:`Magento||CatalogWidget||Model||Rule||Condition||Combine`,`aggregator`:`all`,`value`:`1`,`new_child`:``^],`1--1`:^[`type`:`Magento||CatalogWidget||Model||Rule||Condition||Product`,`attribute`:`category_ids`,`operator`:`==`,`value`:`355`^]^]"}}
@请参阅:vendor/magento/module catalog widget/Block/Product/ProductsList.php


非常感谢你。现在我更改代码,现在显示分页。但问题是,每页都显示相同的产品。有什么解决办法吗。我已清除所有缓存并检查它。同样的结果您可以确认您的类别包含155种不同的产品,这些产品都已启用且可见是的,所有产品都已启用且可见。当我不使用分页时,我可以看到该页面中的所有产品,但当我使用分页并单击页码时,在显示的每一页中,都有相同的产品。您可以指定Magento2的确切版本吗?您可以指定Magento2的确切版本吗?我已向Answer添加了一个更新,您能检查一下它是否能解决您的分页问题吗?是否有更新…谢谢。听到这个消息真是太好了:)不客气
{{widget type="Magento\CatalogWidget\Block\Product\ProductsList" show_pager="1" products_per_page="6" products_count="160" page_var_name="np" template="Magento_CatalogWidget::product/widget/content/grid.phtml" conditions_encoded="^[`1`:^[`type`:`Magento||CatalogWidget||Model||Rule||Condition||Combine`,`aggregator`:`all`,`value`:`1`,`new_child`:``^],`1--1`:^[`type`:`Magento||CatalogWidget||Model||Rule||Condition||Product`,`attribute`:`category_ids`,`operator`:`==`,`value`:`355`^]^]"}}
class ProductsList extends \Magento\Catalog\Block\Product\AbstractProduct implements BlockInterface, IdentityInterface
{
    /**
     * Default value for products count that will be shown
     */
    const DEFAULT_PRODUCTS_COUNT = 10;

    /**
     * Name of request parameter for page number value
     *
     * @deprecated
     */
    const PAGE_VAR_NAME = 'np';

    /**
     * Default value for products per page
     */
    const DEFAULT_PRODUCTS_PER_PAGE = 5;

    /**
     * Default value whether show pager or not
     */
    const DEFAULT_SHOW_PAGER = false;
...


   /**
     * Retrieve how many products should be displayed
     *
     * @return int
     */
    public function getProductsPerPage()
    {
        if (!$this->hasData('products_per_page')) {
            $this->setData('products_per_page', self::DEFAULT_PRODUCTS_PER_PAGE);
        }
        return $this->getData('products_per_page');
    }

    /**
     * Return flag whether pager need to be shown or not
     *
     * @return bool
     */
    public function showPager()
    {
        if (!$this->hasData('show_pager')) {
            $this->setData('show_pager', self::DEFAULT_SHOW_PAGER);
        }
        return (bool)$this->getData('show_pager');
    }

    /**
     * Retrieve how many products should be displayed on page
     *
     * @return int
     */
    protected function getPageSize()
    {
        return $this->showPager() ? $this->getProductsPerPage() : $this->getProductsCount();
    }