• ユーザー(投稿者)がプロフィールページへのアクセスする事を
    禁止する方法はありますでしょうか?

    現在、管理バーのユーザーアカウント名を非表示にして
    プロフィールページへリンクさせないようにしていますが
    URLを指定すると開いてしまいます

    完全にアクセスを禁止にしたいと思っています

    良い方法はありますでしょうか?
    どなたかアドバイスをいただけると幸いです

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • プロフィール ページのアクセスを投稿者グループだったらダッシュボードへリダイレクトさせる方法ではどうでしょうか?

    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' );
    トピック投稿者 ainatsume

    (@ainatsume)

    有難うございます!
    無事アクセスさせなく出来ました!

    ちなみに、ダッシュボードではなく投稿一覧へリダイレクトさせたい場合は
    admin_url() こちらが ’edit.php’ で良いのでしょうか?

    enomoto celtislab

    (@enomoto-celtislab)

    ちょうど同じようなことを調べていました
    既に解決したようですが、こんな方法もあります

    下記コードではユーザーが購読者ならプロフィールの編集を禁止するので表示もされなくなります

    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' ) );

    • この返信は7年、 8ヶ月前にishitakaが編集しました。
    トピック投稿者 ainatsume

    (@ainatsume)

    enomoto-celtislab様

    編集機能を制限するという方法ですね
    とても勉強になりました
    有難うございます!

    ishitaka様

    ご指導有難うございます
    絶対URLですね、、大変勉強になりました!
    少しずつPHPを学んでいきたいと思います

    本当に有難うございました!

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「プロフィールページのアクセス禁止」には新たに返信することはできません。