出于某种原因,我只能在网址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>';
?>
任何帮助都会受到赞赏 - 我正在努力解决它!
答案 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;?