为wordpress后台setting主菜单添加新页面

要在wp后添加新页面, 需要用到admin_menu这个hook, 因些:

add_action('admin_menu', 'my_admin_add_page');

然后定义‘my_admin_add_page’这个函数

function my_admin_add_page() {
    global $my_admin_page;
    $my_admin_page = add_options_page(__('My Admin Page'), __('My Admin Page'), 'manage_options', 'xjj_map', 'my_admin_page');
    //为了方便添加页面顶部的‘help’功能
    add_action('load-'.$my_admin_page, 'my_admin_add_help_tab');
}
function my_admin_page() {
    echo '<h1>Xjj Map admin page</h1>';
}

其中, add_options_page('页面title', '页面在settings里的标题', '权限', '页面slug', '输出页面内容的回调函数'),看图:

然后,我们给这个页面加个帮助

function my_admin_add_help_tab() {
    global $my_admin_page;
    $screen = get_current_screen();
    //print_r($screen);
    if( $screen->id != $my_admin_page ) 
        return;
    $screen->add_help_tab(array(
        'id' => 'my_help_tab',
        'title' => __('My Help Tab'),
        'content' => '<p>' . __('Descriptive content that will show in My Help Tab-body goes here.') . '</p>',        
    ));
    $screen->set_help_sidebar(
        '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
        '<p>' . __( '<a href="http://codex.wordpress.org/Appearance_Header_Screen" target="_blank">Documentation on Custom Header</a>' ) . '</p>' .
        '<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
    );
}

在这个函数里:

get_current_screen()函数会返回一个WP_Screen对象 , 

WP_Screen Object
(
    [action] => 
    [base] => post
    [id] => post
    [is_network] => 
    [is_user] => 
    [parent_base] => edit
    [parent_file] => edit.php
    [post_type] => post
    [taxonomy] => 
    ...
    (private fields)
)

它里面有两个方法:add_help_tab(), set_help_sidebar(), 可以用来添加help条目和侧边栏。看图

 

 

 

posted on 2013-06-08 18:43  xjjrain2011  阅读(317)  评论(0)    收藏  举报

导航