首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么get_query_var不返回我的自定义查询vars?

为什么get_query_var不返回我的自定义查询vars?
EN

Stack Overflow用户
提问于 2021-12-02 13:50:32
回答 1查看 241关注 0票数 1

我正在构建一个WP插件,它定义了一些额外的URL、查询vars和模板。

我想在模板中使用get_query_var("wps_service_id");,但是不管我做什么,它都不会返回任何内容。

我已将额外的查询vars 就像文档所解释的白化。

代码语言:javascript
复制
add_filter('query_vars', function ($query_vars) {
    $query_vars[] = 'wps_service_id';
    return $query_vars;
});

我正在定义额外的URL并加载正确的模板,如下所示:

代码语言:javascript
复制
add_action('init',  function () {
    add_rewrite_rule(
        'services/([a-z0-9-]+)/?$',
        'index.php?wps_service_id=$matches[1]',
        'top'
    );
});


add_action('parse_request', function (&$wp) {
    if (array_key_exists('wps_service_id', $wp->query_vars)) {
        require plugin_dir_path(__DIR__) . "views/service.php";
        exit();
    }
    return;
});

模板正在加载,所以WP在某种程度上清楚地读取和解释查询vars。为什么我不能用get_query_var读取它并在模板中使用它

EN

回答 1

Stack Overflow用户

发布于 2021-12-10 08:23:55

使用“array_key_exists”是正确的吗?您应该使用' in _array',因为您在$query_vars[] =‘wps_service_id’中指定了一个值而不是一个键;

向以下机构查询:

代码语言:javascript
复制
error_log( array_key_exists('wps_service_id', $wp->query_vars));
error_log( in_array('wps_service_id', $wp->query_vars));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70200685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档