如果需要菜单中未显示的管理页面,请使用add_submenu_page
和设置$parent
到null
. 这将创建一个功能性页面,该页面不会在菜单中呈现。
add_action( \'admin_menu\', \'wpd_hidden_plugin_submenu_page\' );
function wpd_hidden_plugin_submenu_page() {
add_submenu_page(
null,
\'My Hidden Submenu Page\',
\'My Hidden Submenu Page\',
\'manage_options\',
\'my-hidden-submenu-page\',
\'my_hidden_submenu_page_callback\',
);
}
用户将需要您指定的任何功能来访问这些页面。
如果要创建在管理界面上下文之外执行操作的操作链接,请使用admin_post_
action. 您使用add_action
将处理程序函数挂接到admin_post_
再加上你的定制动作。请注意,有两个挂钩-用于登录和未登录的访问者。
// hook your handler function for logged in users
add_action( \'admin_post_my_action\', \'wpd_my_action_function\' );
//hook your handler function for non logged in users
add_action( \'admin_post_nopriv_my_action\', \'wpd_my_action_function\' );
function wpd_my_action_function(){
// WordPress API works in here
status_header( 200 );
// do your plugin stuff
// and always die() at the end to halt execution
die();
}
要输出处理程序脚本的URL,请使用
admin_url()
. 注意动作段塞
my_action
在中通过
action
表单元素。这将触发挂钩函数。
<form action="<?php echo admin_url( \'admin-post.php\' ); ?>" method="post">
<input type="hidden" name="action" value="my_action">
<input type="hidden" name="data" value="some-data">
<input type="submit" value="Submit">
</form>
<小时>
Adding AJAX action handlers 与
admin_post_
操作,只是挂接的标记名称不同,URL为
admin-ajax.php
.
add_action( \'wp_ajax_add_foobar\', \'prefix_ajax_add_foobar\' );
add_action( \'wp_ajax_nopriv_add_foobar\', \'prefix_ajax_add_foobar\' );
function prefix_ajax_add_foobar() {
// Handle request then generate response using WP_Ajax_Response
}