我已经为wordpress编写了一个加载菜单的插件。有两种我可以加载菜单的方式,这两种方式都有效。init先于admin_menu加载还是admin_menu先于init加载?这只是一个关于加载时间的事情吗?或者我什么时候应该使用它们中的哪一个?我猜admin_menu只是用来加载菜单,init可以做更多的事情,而admin_menu我可以用来添加这个菜单,但是我真的很困惑什么时候以及为什么要使用它们中的哪一个。我的代码如下:
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);}或
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')
来自官方来源的信息在这里:https://codex.wordpress.org/Plugin_API/Action_Reference/init,但这对我也没有帮助。
他们写道,admin_init是在admin_menu之后调用的,但是“https://codex.wordpress.org/Plugin_API/Action_Reference/admin_menu”是什么意思呢?
发布于 2019-10-23 21:35:53
init用于更通用的插件初始化,并在站点前端和wp-admin中为每个页面视图执行。
admin_menu只有在管理面板菜单实际要显示时才会触发,所以使用它来添加菜单项的效率会稍微高一些。
它也是在初始化之后执行的,所以如果你有一些依赖项需要先执行它们的初始化函数,那么你应该确保在触发admin_menu的时候都已经完成了。
https://stackoverflow.com/questions/58523816
复制相似问题