2014-01-08 149 views
1

我想构建自定义调查并在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); 
} 

菜单项出现在后台。当我点击它去/wp-admin/survey/survey-admin.php显示我的PHP文件内容,但仪表板消失与侧边栏菜单...此页面也是每个人都可见和wordpress函数is_admin不起作用不再在这个页面...

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

谢谢!

回答

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 } ?> 
0

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

if (current_user_can('edit_files')) { 
    add_action('admin_menu', 'register_survey'); 
} 

这里是能力为每种类型的用户列表,以检查用户的功能:http://codex.wordpress.org/Roles_and_Capabilities#Administrator

+0

菜单项“调查”只对管理员显示正确,但是当我点击它时,它会进入我的简单页面survey-admin.ph p和我不再有wordpress仪表板了。如果你可以在我的简单页面上使用is_admin函数,那么这不会是一个大问题,但是没有WordPress的功能可用了......有没有办法在这里附加打印屏幕? – vicentiu

+0

你应该真正看看'is_admin()'函数,只有在当前页面在管理员面板中时才能使用,而不是确定当前用户是否是管理员。我很好奇,没有WordPress功能可用,但你正在使用'add_menu_page()'和'add_action()'等函数。只需将该屏幕截图上传到网站上即可发布该链接。 – DNACode

相关问题