在这个堆栈交换中,有一百万篇关于这个主题的帖子,但由于某种原因,我无法让它为我工作。我想知道我做错了什么?
在我的功能中。php我定义如下:
add_filter(\'query_vars\', \'add_quote_query_vars\');
function add_quote_query_vars($qv){
$qv[] = \'xx-quote\';
return $qv;
}
然后,在首页。php我提供了一个链接,将其嵌入URL:
echo \'<a href="\'.add_query_arg(\'xx-quote\', $quote->ID).\'">\';
有两件事出错了。1: 如果,在我的模板页I上
print_r($wp_query->query_vars);
, 我的“xx quote”没有出现在列表2中:只要我真正尝试将其包含在URL中(通过单击链接,URL就是
http://mysite.com/blog/?xx-quote=555
) 我被带到了归档页面,而不是预期的头版。
#2的有趣之处在于,只要我删除query_vars
过滤并再次单击该链接,我将按预期正确进入首页。
我只是不理解query\\u vars的作用吗?这是预期的行为吗?还是我在错误的时间调用了过滤器(我尝试过将其包装在init操作中,甚至在functions.php中)?
我知道我可以忽略所有这些,因为我正在处理首页。无论如何,只要使用$\\u REQUEST[\'xx-quote\'],但这似乎根本不是一个最佳实践,我正在尝试用“WordPress方式”。。。
不用说,以下代码不会产生任何结果:
global $wp_query;
echo $wp_query->query_vars[\'xx-quote\'];
这就是我困惑的基础。我已经阅读了这个SE上的所有相关帖子,我似乎做的每件事都是对的。很明显我没有-出什么问题了?