“ADMIN_ENQUEUE_SCRIPTS”挂钩还是$_GET[‘PAGE’]?

时间:2013-02-05 作者:John

将函数添加到“admin\\u enqueue\\u scripts”时,会向该函数传递一个钩子。它看起来像是“toplevel\\u page\\u nameofyourpage”。这很好,但它与检查$\\u GET变量以查看您所在的页面有何不同?一个优先于另一个吗?为什么?

我只是说当你创建自己的菜单时,而不是默认的管理页面。

2 个回复
SO网友:Chaoix

在钩子变量中使用Wordpress提供的值的优点是将来与Wordpress版本兼容,并且不必担心通过用户或其他Wordpress插件操纵$\\u GET变量。

检查$\\u GET数组是可行的,但可能不可靠,尤其是当其他编码糟糕的插件开始干扰$\\u GET数组时,因为它不是全局常量,可以修改。

SO网友:wp-overwatch.com

如果您使用$_GET[\'page\'] 例如,您可能会在以下两者之间发生冲突:,/wp-admin/options-general.php?page=some-page (设置菜单下的一页)和/wp-admin/admin.php?page=some-page (插件或主题创建的菜单下的页面)。

使用挂钩时这不是问题,因为挂钩包含父菜单的名称。

所以如果$_GET[\'page\'] 不是一个好的选择,为什么不使用$_SERVER[\'REQUEST_URI\']?

你应该能够做到这一点。我假设WordPress开发人员已经有了$hook变量,并且认为这将是一种更直接的方法来检查hook等于什么,而不是检查什么$_SERVER[\'REQUEST_URI\'] 以开始。

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴