首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于add_action的区别(‘init’,...)和add_action('admin_menu',...)

关于add_action的区别(‘init’,...)和add_action('admin_menu',...)
EN

Stack Overflow用户
提问于 2019-10-23 21:18:52
回答 1查看 200关注 0票数 0

我已经为wordpress编写了一个加载菜单的插件。有两种我可以加载菜单的方式,这两种方式都有效。init先于admin_menu加载还是admin_menu先于init加载?这只是一个关于加载时间的事情吗?或者我什么时候应该使用它们中的哪一个?我猜admin_menu只是用来加载菜单,init可以做更多的事情,而admin_menu我可以用来添加这个菜单,但是我真的很困惑什么时候以及为什么要使用它们中的哪一个。我的代码如下:

代码语言:javascript
复制
add_action('admin_menu','admin_menu_option');
function admin_menu_option(){add_menu_page('My Script','My-Site','manage_options','admin-menu','my_page','',200);}

代码语言:javascript
复制
add_action('init','admin_menu_option');
function admin_menu_option(){add_menu_page('My Script','My-Site','manage_options','admin-menu','my_page','',200);}

在网站上:还有其他有类似问题的帖子,但对我没有帮助:

WordPress Plugin Customize menu and submenu What is add_action( 'init register_activation_hook vs add_action('init')

How to fix add_action?

来自官方来源的信息在这里:https://codex.wordpress.org/Plugin_API/Action_Reference/init,但这对我也没有帮助。

他们写道,admin_init是在admin_menu之后调用的,但是“https://codex.wordpress.org/Plugin_API/Action_Reference/admin_menu”是什么意思呢?

EN

回答 1

Stack Overflow用户

发布于 2019-10-23 21:35:53

init用于更通用的插件初始化,并在站点前端和wp-admin中为每个页面视图执行。

admin_menu只有在管理面板菜单实际要显示时才会触发,所以使用它来添加菜单项的效率会稍微高一些。

它也是在初始化之后执行的,所以如果你有一些依赖项需要先执行它们的初始化函数,那么你应该确保在触发admin_menu的时候都已经完成了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58523816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档