プロフィール ページのアクセスを投稿者グループだったらダッシュボードへリダイレクトさせる方法ではどうでしょうか?
function my_disable_profile_page() {
if( current_user_can( 'author' ) ) {
wp_safe_redirect( admin_url() );
exit;
}
}
add_action( 'load-profile.php', 'my_disable_profile_page' );
有難うございます!
無事アクセスさせなく出来ました!
ちなみに、ダッシュボードではなく投稿一覧へリダイレクトさせたい場合は
admin_url() こちらが ’edit.php’ で良いのでしょうか?
ちょうど同じようなことを調べていました
既に解決したようですが、こんな方法もあります
下記コードではユーザーが購読者ならプロフィールの編集を禁止するので表示もされなくなります
function invalid_edit_user($caps, $cap, $user_id, $args) {
if($cap === 'edit_user'){
$user = get_userdata( $user_id );
if ( isset($user->roles) && in_array('subscriber', $user->roles)){
$caps[] = 'do_not_allow';
}
}
return $caps;
}
add_filter( 'map_meta_cap', 'invalid_edit_user', 10, 4 );
そうですね。機能を制限する(権限)という考え方の方がスムーズなような気がしますね。
いちおうリダイレクトについてフォローしておきます。
絶対 URL で指定したほうがいいです。
相対 URL であっても大抵の HTTP クライアントは受け入れてリダイレクトを行うようですが、仕様では絶対 URL となっています。
よって、admin_url( ‘edit.php’ ) の方がいいです。
wp_safe_redirect( admin_url( 'edit.php' ) );
enomoto-celtislab様
編集機能を制限するという方法ですね
とても勉強になりました
有難うございます!
ishitaka様
ご指導有難うございます
絶対URLですね、、大変勉強になりました!
少しずつPHPを学んでいきたいと思います
本当に有難うございました!