将自定义页面添加到管理员菜单仅对管理员可见

时间:2014-01-08 15:14:36

标签: wordpress admin backend

我想构建一个自定义调查并在wordpress后端显示他的结果。

我添加了一个新的管理菜单项:

add_action( 'admin_menu', 'register_survey' );

function register_survey(){
    add_menu_page( 'Survey', 'Survey', 'manage_options', '/survey/survey-admin.php', '', '/wp-admin/survey/icon.png', 30 );
}

名为Survey的菜单项出现在后端。当我点击它去/wp-admin/survey/survey-admin.php显示我的php文件内容,但仪表板消失与侧边栏菜单...这个页面也是每个人都可以看到wordpress功能is_admin不起作用在这个页面中......

什么是正确的解决方案?我只是想在wordpress后端显示我的自定义页面,并能够检查用户是否是管理员。我需要为此创建一个插件吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

我通过创建插件找到了解决方案并添加了以下代码:

<?php

add_action( 'admin_menu', 'register_survey' );

function register_survey() {

    //create new top-level menu
    add_menu_page('Survey', 'Survey', 'administrator', __FILE__, 'survey_page',plugins_url('/icon.png', __FILE__));
}


function survey_page() {
?>
<div class="wrap">
<h2>Survey</h2>

MY TEXT HERE


<?php if ( is_admin() ) {
  echo '<p>is admin!</p>';
}
?>

</div>
<?php } ?>

答案 1 :(得分:0)

另一种解决方案是使用current_user_can()

检查用户功能
if ( current_user_can('edit_files') ) {
    add_action( 'admin_menu', 'register_survey' );
}

以下是每种类型用户的功能列表:http://codex.wordpress.org/Roles_and_Capabilities#Administrator