You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopware 6 SEO分页插件问题:自定义Twig循环致分页不可点击及排序异常

修复Shopware分页自定义Twig的两个问题:不可点击+排序失效

问题1:分页项不可点击

原因

  • 你生成的<a>标签是空的,没有页码文本(如1、2、3),用户看不到可交互的元素
  • 错误遍历所有排序选项生成大量无效空链接,干扰了原分页的DOM结构
  • 未遵循Shopware分页的标准结构(原模板用<li>包裹分页项,包含is-active状态类等)

问题2:排序切换后无法加载正确结果

原因

  • 没有正确获取当前页面的排序参数,反而硬循环所有排序选项生成链接,导致分页链接的排序参数混乱
  • 生成SEO URL时未传递当前选中的排序值,切换排序后分页仍使用错误参数

修复后的完整代码

{% sw_extends '@Storefront/storefront/component/pagination.html.twig' %}

{% set configService = sw.service('TanmarSeoPagination.config_service') %}

{% block component_pagination_loop %}
    {% set currentCategoryId = page.header.navigation.active.id %}
    {# 获取当前排序参数,默认值设为name-asc #}
    {% set currentOrder = app.request.get('order', 'name-asc') %}
    {% set currentProperties = app.request.get('properties') %}

    {# 保留原分页循环逻辑,仅修改每个页码的链接参数 #}
    {% for i in 1..totalPages %}
        {% set seoParams = { 
            navigationId: currentCategoryId, 
            p: i,
            order: currentOrder {# 携带当前选中的排序参数 #}
        } %}

        {% if currentProperties %}
            {% set seoParams = seoParams|merge({ properties: currentProperties }) %}
        {% endif %}

        {# 重写分页项结构,保证符合Shopware标准样式与交互 #}
        {% block component_pagination_item %}
            <li class="pagination-item{% if currentPage == i %} is-active{% endif %}">
                <a href="{{ seoUrl('frontend.navigation.page', seoParams) }}" 
                   class="pagination-link"
                   aria-label="{{ 'pagination.page'|trans({ '%page%': i }) }}">
                    {{ i }}
                </a>
            </li>
        {% endblock %}
    {% endfor %}
{% endblock %}

关键改动说明

  1. 移除无效循环:删除遍历所有排序选项的代码,分页链接仅基于当前用户选中的排序生成
  2. 正确获取参数:通过app.request.get('order', 'name-asc')获取当前排序,确保默认值与系统一致
  3. 恢复标准结构:保留Shopware分页的<li>包裹结构、状态类和页码文本,让分页项可见可点击
  4. 传递正确参数:将当前排序、属性参数合并到每个页码的SEO链接中,确保切换排序后分页加载对应结果

内容的提问来源于stack exchange,提问作者mlodhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 01:05:00