你的问题标题和实际问题之间有点脱节。
听起来你在使用插件(或开发插件?)这允许进行一些前端排序。如果它是您正在使用的插件,并且查询字符串参数未被清理,则需要通知该插件的开发人员,因为这是一个安全问题。
自己修复可能会暂时解决问题,但你真的不应该直接编辑插件(即使是编码很差的插件),因为这会让你在插件更新时需要重新应用任何更改。
的名称get_query_var()
函数可能会令人困惑。很多人认为这是一种方便的WP替代品$_GET[]
, 但事实并非如此。get_query_var()
仅适用于作为全局WP查询一部分设置的变量。这包括许多WP默认值,以及任何自定义变量(添加set_query_var()
).
为其端点应用自定义URL重写的插件可能就是一个例子。但是,如果您认为可以使用它从URL中获取任何查询变量,那就行不通了,因为这不是get_query_var()
做
您只需搜索此查询参数的收集位置。很可能是用$_GET[\'sort\']
.
不管是什么,它应该是:
$some_var = sanitize_text_field( $_GET[\'sort\'] );
甚至更好:
$some_var = ( isset( $_GET[\'sort\'] ) ) ? sanitize_text_field( $_GET[\'sort\'] ) : \'some default value\';
显然,我的回答是基于一些假设,你的问题中没有包括这些假设的细节。如果我不正确,请更新您的问题以包含更多信息,我会相应地进行编辑。