从WordPress中的URL中提取参数

时间:2012-11-30 20:23:01

标签: php wordpress

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

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

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

4 个答案:

答案 0 :(得分:37)

通过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功能。

答案 1 :(得分:26)

为什么不使用WordPress get_query_var()功能呢? Link to Codex

// 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可用的查询参数,因此为了访问自定义查询var' 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 :(得分:2)

您可以尝试此功能

/**
 * Gets the request parameter.
 *
 * @param      string  $key      The query parameter
 * @param      string  $default  The default value to return if not found
 *
 * @return     string  The request parameter.
 */

function get_request_parameter( $key, $default = '' ) {
    // If not request set
    if ( ! isset( $_REQUEST[ $key ] ) || empty( $_REQUEST[ $key ] ) ) {
        return $default;
    }

    // Set so process it
    return strip_tags( (string) wp_unslash( $_REQUEST[ $key ] ) );
}

以下是函数

中发生的事情

这里发生了三件事。

  • 首先,我们检查请求密钥是否存在。如果没有,则只返回默认值。
  • 如果已设置,那么我们首先通过执行wp_unslash删除斜杠。在这里阅读为什么它比stripslashes_deep更好。
  • 然后我们通过做一个简单的strip_tags来清理这个值。如果您希望参数中包含富文本,请通过wp_kses或类似函数运行它。

所有这些信息以及有关该功能背后思考的更多信息都可以在此链接上找到https://www.intechgrity.com/correct-way-get-url-parameter-values-wordpress/

答案 3 :(得分:1)

在回叫功能中,使用$ request参数

$parameters = $request->get_params();
echo $parameters['ppc'];