show_user_profile
是使用错误的挂钩。在将任何内容发送到浏览器之前(例如,在发送标题之前),应该重定向。
幸运的是,有些行动发生得更早:load-{$pagename}
就是你想要的。这样你就可以load-index.php
和load-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
能力)。