何时需要Add_Query_Arg()?

时间:2015-04-24 作者:testermaster

考虑到这段代码,两种解决方案似乎都很好。我不明白的是,这两种解决方案有什么区别吗?

general\\u插件。php

function add_custom_query_var( $vars ){
  $vars[] = "custom_var";
  return $vars;
}
add_filter( \'query_vars\', \'add_custom_query_var\' );
plugin\\u part1。php

...
echo \'<a href="https://www.example.com/page/?custom_var=\'.$db_table->db_column.\'">text</a>....\'
...
plugin\\u part1-已修复。php

...
echo \'<a href="https://www.example.com/page/\'.add_query_arg( "custom_var", $db_table->db_column).\'">text</a>....\'
...

1 个回复
最合适的回答,由SO网友:TheGentleman 整理而成

区别在于,在“plugin\\u part1-fixed.php”中,不会丢失现有的参数。考虑url:

https://www.example.com/page/?foo=bar
“plugin\\u part1.php”中的代码将输出

<a href="https://www.example.com/page/?custom_var=column">text</a>
注意,现有的arg“foo”已经丢失,“plugin_part1-fixed.php”中的代码将输出:

<a href="https://www.example.com/page/?foo=bar&custom_var=column">text</a>
请注意,现有的arg“foo”仍然存在,并且已附加您的arg。

因为您没有任何现有参数,所以看不到有什么区别。也就是说,使用add_query_arg() 这仍然是最佳实践,因为您不知道是否必须与另一个插件交互,该插件可能出于任何原因也会发送参数。

此外,请记住,您应该始终包装add_query_arg() 在里面esc_url() 更好地解释了防止XSS脚本编写here.

结束

相关推荐

JQuery Cookie在WordPress中无法正常工作

我自己制作手风琴菜单html + jquery 它可以完美地工作到第四级,然后我从网络中添加了一个cookie代码,并做了一些额外的工作,它在html中也可以100%完美地工作。我完整的HTML+jQuery代码参考是在JS FIDLE中Accordion Menu with Cookie现在我非常小心地将它合并到我的wordpress菜单中,它显示出非常奇怪的行为。当我单击plus时,子菜单打开,我单击sub category时,页面将转到该类别,但菜单关闭,但当我再次打开子菜单并单击菜单或刷新页面时,