12

我正在制作一个 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

        }
4

4 回答 4

16

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');

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

于 2015-05-15T11:02:35.610 回答
14

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

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

于 2013-05-14T15:14:49.097 回答
14

我认为您要的是get_query_var()函数。在您的情况下,您应该使用 get_query_var('adminoption')。希望能帮助到你

于 2012-07-11T22:49:08.743 回答
10

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

根据您的操作,您还可以使用WP_Query 类(猫、作者等)接受的get_query_var('key')参数。

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

于 2014-08-01T13:47:23.933 回答