get_query_var虽然在$ wp-> query_vars中没有工作

时间:2016-11-10 08:59:43

标签: wordpress

我尝试将get_query_var用于新参数" forumid"。 我在打印时看到参数($ wp-> query_vars),

  

阵列(       [forumid] => 23)

但是get_query_var(" forumid")返回NULL

add_filter( 'query_vars', 'wpse9870_query_vars' );
function wpse9870_query_vars( $query_vars )
{
    $query_vars[] = 'forumid';

    return $query_vars;
}

add_action( 'parse_request', 'wpse9870_parse_request' );
function wpse9870_parse_request( &$wp )
{
    if ( array_key_exists( 'forumid', $wp->query_vars ) ) {
        echo get_query_var('forumid');
        require  'wp-content/plugins/forum/2.php';

        exit();
    }
    return;
}

在wp-content / plugins / forum / 2.php文件中,get_query_var也得到Null(' forumid')

1 个答案:

答案 0 :(得分:0)

操作挂钩parse_request 到早期

请阅读此处 - > Action_Reference

钩子parse_requestparse_query之前运行,其中查询变量只是设置好。

我认为您应该使用parse_query代替parse_request

add_action( 'parse_query', 'wpse9870_parse_request' );
function wpse9870_parse_request( &$wp )
{
    if ( array_key_exists( 'forumid', $wp->query_vars ) ) {
        echo get_query_var('forumid');
        require  'wp-content/plugins/forum/2.php';

        exit();
    }
    return;
}