仪表板Show_User_Profile的挂钩

时间:2011-12-07 作者:greenbandit

我正在寻找一种方法来避免普通用户访问个人资料和仪表板页面。使用以下小代码处理配置文件页面:

function lockdown_profile()
{
    global $current_user;
    return !current_user_can( \'manage_options\' ) ? wp_redirect("/profile") : true;
}
add_action(\'show_user_profile\', "lockdown_profile");
而且很有效,但我需要对仪表板页面做同样的操作,有什么想法吗?

1 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

show_user_profile 是使用错误的挂钩。在将任何内容发送到浏览器之前(例如,在发送标题之前),应该重定向。

幸运的是,有些行动发生得更早:load-{$pagename} 就是你想要的。这样你就可以load-index.phpload-profile.php 把人扔到最前面。

<?php
add_action( \'load-profile.php\', \'wpse35742_maybe_redirect\' );
add_action( \'load-index.php\', \'wpse35742_maybe_redirect\' );
function wpse35742_maybe_redirect()
{
    if( current_user_can( \'manage_options\' ) ) return;
    wp_redirect( home_url( \'/profile\' ), 302 );
    exit();
}
尽管如此,你会过得更好adding a new role 这比典型订阅者的功能更为有限:不要让他们查看仪表板或其配置文件(即read 能力)。

结束

相关推荐

使用functions.php使子菜单项成为管理菜单中的主链接

我正在尝试使用这些函数自定义管理区域。php文件,使我的客户更容易处理。我之前收到的一个请求是将一些子菜单移到主导航中,希望能够完成。例如,我想让小部件和菜单出现在主导航中,而不是作为外观的子菜单。然后,我将一起删除“外观”选项卡。我已经能够删除选项卡,但无法为小部件和菜单创建新按钮。即使我可以得到帮助,而不是从技术上移动它们,而是创建一个新按钮并自己设置链接(例如,对于菜单->/nav Menus.php)。这有可能吗?谢谢