URL 查询参数是 URL 中问号(?)之后的部分,在动态网页开发中至关重要。它们也被称为GET 参数,以 HTTP 动词命名。它们有助于在页面之间传递数据,并根据用户交互情况控制网站行为。在 WordPress 中,访问/获取这些参数是一项常见的需求,了解如何有效地访问这些参数可以大大增强网站的功能。本文就分享四种在 WordPress 中处理查询参数的不同方法。

什么是 Url 查询参数

带有查询参数的典型 URL 是这样的:

https://www.codesou.cn/page?param1=value1&param2=value2

这里,param1param2是查询参数,每个参数都有特定的值。页面获取到参数值后,可以根据情况做出不同的逻辑。

方法 1:使用get_query_var()函数

对于通过 WordPress 重写添加的自定义查询变量或在使用 WordPress 循环时,可使用get_query_var()函数获取 Url 查询参数。

首先,确保已注册自定义查询变量:

function add_query_vars_filter($vars){
  $vars[] = "my_param";
  return $vars;
}
add_filter('query_vars', 'add_query_vars_filter');

然后,在需要的代码位置检索该值即可:

$my_param = get_query_var('my_param');

方法 2:访问标准查询参数

对于标准的 Url 查询参数,还可以使用全局$_GET数组:

$param1 = isset($_GET['param1']) ? $_GET['param1'] : '';

方法 3: 使用WP_Query对象

如果使用了 WordPress 循环,那么可以直接从WP_Query对象访问查询参数:

global $wp_query;
$param1 = $wp_query->query_vars['param1'] ?? '';

方法 4:使用filter_input()函数

访问查询参数的更安全方法是使用filter_input()函数,它允许你同时对输入进行过滤:

$param1 = filter_input(INPUT_GET, 'param1', FILTER_SANITIZE_STRING);

最佳实践

  • 验证和过滤: 始终对查询参数进行验证和过滤,以防止出现安全漏洞。
  • 检查是否存在: 在使用查询参数之前,检查该参数是否存在,以避免出现未定义索引通知。
  • 使用 WordPress 内置函数: 尽可能使用 WordPress 提供的函数,因为它们通常会为您处理许多常见问题。

使用案例

查询参数可用于多种用途,例如

  • 过滤帖子: 根据特定条件(如类别或日期范围)显示帖子。
  • 搜索结果: 处理搜索查询并显示结果。
  • 页面导航: 控制帖子或自定义帖子类型的分页。