【问题标题】:Getting querystring parameter value in wordpress在wordpress中获取查询字符串参数值
【发布时间】:2012-07-11 15:12:06
【问题描述】:

我正在制作一个 wordpress 插件。我在锚点中使用了 add_query_string() 以根据用户单击的链接加载内容。现在我需要知道在当前 URI 中获取参数值的最佳方式。

这可能是一个非常基本且愚蠢的问题,但我是编程新手,所以如果我误解了一些术语,我很抱歉。

这是代码:

        if ( current_user_can('manage_options') ) {
            echo (
                '<div>
                    <ul>
                        <li><a href="'.add_query_arg( 'adminoption', 1 ).'">option 1</a></li>
                        <li><a href="'.add_query_arg( 'adminoption', 2 ).'">option 2</a></li>
                    </ul>
                </div>'
            );

            // if adminoption == 1 load content A
            // if adminoption == 2 load content B

        }

【问题讨论】:

    标签: wordpress query-string


    【解决方案1】:

    get_query_var('adminoption') 仅适用于标准变量或注册变量。所以对于非标准的 Wordpress 变量,你需要先在你的 functions.php 文件中注册它:

    function rj_add_query_vars_filter( $vars ){
        $vars[] = "adminoption";
        return $vars;
    }
    add_filter( 'query_vars', 'rj_add_query_vars_filter' );
    
    get_query_var('adminoption');
    

    意识到这个问题很老,但希望它对任何人都有帮助。

    【讨论】:

    • 您在$vars[] 数组中添加什么“组”?不应该是$vars[] = "adminoption";吗?
    【解决方案2】:

    我认为您要求get_query_var() 功能。 在您的情况下,您应该使用 get_query_var('adminoption')。 希望对你有帮助

    【讨论】:

    • 谢谢大卫。不错的建议,但这对我来说是空白的。事实是我什至不知道我是否应该使用 add_query_arg()。我需要做的就是根据查询字符串在同一页面上显示内容。我可以为每个链接创建一个页面,但这不是一个选项,因为我不会学到任何东西,而学习是我搞乱创建插件的主要原因。
    • 点击链接后你的网址是什么样的?是否类似于 www.yoursite.com/?adminoption=1 只是想知道您的问题是否从 add_query_arg() 开始。无论如何,您可以尝试使用旧的 php $_GET['adminoption']。
    • 是的,点击链接后的网址就可以了。 $_GET['adminoption'] 就像一个魅力。非常感谢!我在使用 $_GET 时是否需要担心安全性?
    • 我想你只是根据参数显示一个内容,而不是将值放在数据库查询中,也没有直接在页面上使用它,所以你不应该有任何问题。我想 Wp 使用一个函数来检索值,出于安全原因,添加控件并对其进行清理,但事实并非如此。奇怪的是 WP 功能不起作用。你有什么错误吗?还是只是一个空白值?您正在编写代码的页面是什么类型的页面?
    • 只是普通的空白值。可能是我从中调用它的范围吗?代码在静态函数中。
    【解决方案3】:

    David Carrus 在 cmets 中提出隐藏的答案:

    无论如何你可以尝试使用旧的 php $_GET['adminoption']。

    【讨论】:

      【解决方案4】:

      要从查询字符串中获取变量,您可以使用 PHP 的 $_GET['key'] 方法。

      根据你在做什么,你也可以使用get_query_var('key')this function works with parameters accepted by the WP_Query class (cat, author, etc)

      如果您想在此函数中使用自定义查询变量,您需要使用query_vars 过滤器来修改支持的查询变量列表,您可以阅读上面链接的文档中的操作方法。

      【讨论】:

      • +1 令人惊讶的是 get_query_var('key') 不适用于自定义参数,这是唯一提到它的答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 2017-12-09
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多