如何解析自定义URL(在WP站点内)并获取传递给URL参数

时间:2013-06-05 作者:Arvind

在我的WP站点中--例如。http://www.mydomain.com-- 必须将请求传递到自定义URL--http://www.mydomain.com/custompage?param1=abc&param2=def

现在,我希望从函数中的函数获取传递给该URL的参数。该主题的php。此函数在加载上述(示例)URL时执行。。。

我该怎么做?对于上面的示例,我希望获得第一个参数=abc,第二个参数=def——我已经知道这些参数名为param1和param2。

2 个回复
SO网友:Matthew Boynes

首先,注册查询变量param1param2:

function wpse_101951_query_vars( $qv ) {
    $qv[] = \'param1\';
    $qv[] = \'param2\';
    return $qv;
}
add_filter( \'query_vars\', \'wpse_101951_query_vars\' );
要使用这些信息,您几乎可以actionfilter 之后parse_query. 这是设置查询变量后可用的第一个操作,因此这是您可以使用的第一个操作get_query_var. 下面是一个示例:

function wpse_101951_get_params() {
    if ( $param1 = get_query_var( \'param1\' ) ) {
        # Do something as a result of param1 being set
    }
    if ( $param2 = get_query_var( \'param2\' ) ) {
        # Do something as a result of param2 being set
    }
}
add_action( \'parse_query\', \'wpse_101951_get_params\' );

SO网友:yoyowhat

根据我有限的经验,我会避免在没有充分理由的情况下污染WordPress的查询变量。这些是在进行数据库查询时使用的,很容易出错。

如果您不打算更改WP的主查询对象,只需使用PHP的$_GET$_REQUEST.

function get_url_params() {
    if ( isset($_GET[\'param1\']) )
        $param1 = $_GET[\'param1\'];

    if ( isset($_GET[\'param2\']) )
        $param2 = $_GET[\'param2\'];
}

结束

相关推荐

TinyMCE Plugin Parameter

有人能告诉我,如果有任何地方我可以找到这些TinyMCE插件的用途吗?$in[\'plugins\']=\'inlinepopups,tabfocus,paste,media,fullscreen,wordpress,wpeditimage,wpgallery,wplink,wpdialogs,wpfullscreen\'; 我想知道如果我删除wordpress 编辑将停止删除我的<p> 标签,但我也丢失了html 编辑器视图。