Qunhe Network · Corporate Technology and Design Services
Call us130 6699 2285Same WeChat ID

筛选链接里同一个参数出现两次,前端和WordPress为何读到不同条件?

重复筛选参数的读取方式:get,读取一个同名值,不代表全部多选项;getAll,返回全部同名值,仍需处理重复及校验;方括号数组,PHP支持的参数结构,必须符合插件约定
重复筛选参数的读取方式:关键概念与边界对照。原创知识示意,点击可查看大图。

同名参数重复时,读取单个值、读取全部值和按数组解析会得到不同结构。例如color=red&color=blue,URLSearchParams.get读取第一个值,getAll返回全部值;PHP和具体筛选插件仍有各自的解析约定,不能假定各层自动一致。

保存原始查询字符串再比较

复制浏览器最终地址及筛选请求,区分color=red&color=blue、color[]=red&color[]=blue和逗号拼接。它们不是天然等价格式。还要检查表单与脚本是否同时追加了同一条件,保留无敏感样本,不从按钮上勾了两个颜色推断服务器已收到数组。

核对前端使用get还是getAll

get只取某个名称的一个值,getAll才返回该名称的全部值。构造新地址时,append会增加值,set会替换同名值;反复点击若一直append,可能积累重复条件。修正时按照组件的数据模型构造参数,不为“简化网址”直接丢掉有效的多选项。

重复筛选参数的读取方式:保存原始参数、核对单值与多值、对齐服务端结构、复查分享与缓存
排查流程:保存原始参数 → 核对单值与多值 → 对齐服务端结构 → 复查分享与缓存。原创知识示意,点击可查看大图。

核对PHP和插件期待的结构

PHP的parse_str支持方括号数组约定,普通同名键与数组写法不能混用后仍假定结果不变。检查插件文档接受单值、数组还是其他格式,并把解析后的字段与原始请求对照。自定义接口应明确只允许哪些名称和值,遇到意外结构返回清楚提示,不静默选择一项。

比较筛选、分享和缓存三个结果

使用单选、多选、重复点击及无效值样本,确认页面结果、分享后恢复的选择和浏览器返回操作一致。若参数参与缓存键,也应核查实际键是否保留了所有有效条件;不要只排序原始字符串就认定语义相同,解析一致后再讨论去重和缓存。

关键区别

重复筛选参数的读取方式:get,读取一个同名值,不代表全部多选项;getAll,返回全部同名值,仍需处理重复及校验;方括号数组,PHP支持的参数结构,必须符合插件约定
重复筛选参数的读取方式:关键概念与边界对照。原创知识示意,点击可查看大图。

get:读取一个同名值;不代表全部多选项。

getAll:返回全部同名值;仍需处理重复及校验。

方括号数组:PHP支持的参数结构;必须符合插件约定。

怎样确认处理到位

原始参数、前端选择和服务端数据结构对应;多选、重复点击和分享恢复结果一致,缓存不会把不同筛选条件错误合并。

容易误判的边界

参数顺序、编码与业务语义不是同一件事。应先解决各层解析约定,再设计链接规范,不能把删除参数当成通用SEO修复。

References

MDN:URLSearchParams.getAll

MDN:URLSearchParams.get

PHP:parse_str查询参数解析

返回网站知识,按具体问题继续阅读

Shopping Cart
Scroll to Top
Scan the QR code to make a reservation

1981 Steakhouse (Hisense Branch)

Store Introduction

Introduction to 1981 Steakhouse (Hisense Branch)

Scan the QR code to make a reservation

1981 STEAK HOUSE (Zhihui Mountain Branch)

Store Introduction

1981 STEAK HOUSE (Zhihui Mountain Branch) Introduction

Scan the QR code to make a reservation

1981 American-Style Barbecue Factory Outlet

Store Introduction

Introduction to the 1981 American-Style Barbecue Factory Store

Scan the QR code to make a reservation

1981 STEAK HOUSE (Minyuan Branch)

Store Introduction

1981 STEAK HOUSE (Minyuan Branch) Introduction

Contact Qunhe · Zheng Borui (Brian)

Contact via WeChat

Scan the QR code on your computer; on your phone, you can long-press to save the QR code,
Or copy the WeChat ID to add me as a friend.

Brian Zheng Borui's Authentic WeChat Contact QR Code

130 6699 2285 Same WeChat ID

You can also contact us via WhatsApp →