从WordPress中的URL中提取参数

2022-08-30 11:35:02

我正在尝试使用URL将参数传递给WordPress网站 - 例如:

www.fioriapts.com/?ppc=1将是网址。

我打算在函数.php文件中编写一个函数,但是如何在WordPress中提取参数的机制超出了我的范围。我发现了很多如何使用该函数将参数添加到URL的示例,但没有找到有关如何提取参数的任何示例。提前感谢您的任何帮助。add_query_arg()


答案 1

为什么不直接使用WordPress功能呢?WordPress Code Referenceget_query_var()

// Test if the query exists at the URL
if ( get_query_var('ppc') ) {

    // If so echo the value
    echo get_query_var('ppc');

}

由于get_query_var只能访问WP_Query可用的查询参数,因此为了访问自定义查询变量(如'ppc'),您还需要在插件中注册此查询变量或在初始化期间添加操作:functions.php

add_action('init','add_get_val');
function add_get_val() { 
    global $wp; 
    $wp->add_query_var('ppc'); 
}

或者通过向query_vars过滤器添加钩子:

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

答案 2

通过 URL 传递参数时,您可以将值作为 GET 参数进行检索。

使用这个:

$variable = $_GET['param_name'];

//Or as you have it
$ppc = $_GET['ppc'];

不过,首先检查变量更安全:

if (isset($_GET['ppc'])) {
  $ppc = $_GET['ppc'];
} else {
  //Handle the case where there is no parameter
}

以下是您应该查看的有关GET / POST参数的一些阅读:http://php.net/manual/en/reserved.variables.get.php

编辑:我看到这个答案在制作多年后仍然获得大量流量。请阅读此答案附带的评论,特别是来自@emc输入,他们详细介绍了可以安全地实现这一目标的WordPress功能。


推荐