在WordPress中,如何将多个变量传递到URL并检索它们?

时间:2015-06-02 21:42:57

标签: javascript php wordpress url get

出于某种原因,我只能在网址http://localhost/coffeesite/?product_category=coffee&brand=bourbon中检索第一个变量,在本例中是“product_category”。

我正在输出javascript以确认我已设置变量,但同样,只会提醒咖啡,而不是品牌。我正在使用WordPress的'get_query_var'。请参阅以下代码:

<?php 
        echo '<script> product_category = "' . get_query_var('product_category') . '"; 
                       brand = "' . get_query_var('brand') . '";
                       alert(product_category);
                       alert(brand);
             </script>'; 
?>

任何帮助都会受到赞赏 - 我正在努力解决它!

1 个答案:

答案 0 :(得分:0)

既然你正在测试,也许你可以直接测试php?函数get_query_var只是通用php数组$ _GET的包装器。您应该在$ _GET [&#39; product_category&#39;]和$ _GET [&#39;品牌&#39;]中提供这些值。但是,为什么不检查你实际拥有的东西,而不是假设一切都在它应有的位置?

<?php 
    add_settings_error("var-test", "var-test", implode(", ", array_keys($_GET)));
?>

免责声明:我是Drupal开发人员,而不是Wordpress,但他们都是php。 我在这里使用文档化的消息工具,用于更简洁的PHP代码。 https://codex.wordpress.org/Function_Reference/add_settings_error 如果您愿意,您仍然可以使用您的JavaScript:

<?php 
    echo '<script> alert( '. implode(", ", array_keys($_GET)) .');
         </script>'; 
?>

第二种可能性。使用包装函数而不是原始核心的原因是它在包装中提供的内容。我的正常假设是卫生和安全过滤器,这些过滤器不适合测试,但对生产环境至关重要。但是,通过对您正在使用的函数进行一点读取,它表示它只返回已知查询对象的值,如果您在URL中使用自定义变量,则应注册它们。 https://codex.wordpress.org/Function_Reference/get_query_var 您是否已注册&#34;品牌&#34;?