サポート » 使い方全般 » 管理者権限以外でツールのpress thisが使用できないようにしたい

  • 解決済 heght

    (@heght)


    複数人で管理していますが、
    私だけ管理者権限で、他の人を投稿者または寄稿者の権限にしています。

    そこで、サイトを作成していてわかったのですが、
    投稿者または寄稿者の権限の人のURLに、
    http://サイトURL/wp-admin/tools.php
    と記入すると、普通に入れてしまうことがわかりました。

    この部分についての質問なのですが、
    管理者権限以外の人は
    http://サイトURL/wp-admin/tools.php
    に入れないようにしたいです。

    user role editorなどのプラグインでどうしてよいのかわからず、
    また、どのようなコードを記述すればよいのか、
    分かりませんでしたので、質問させていただきました。

    よろしくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • このような感じでいかがでしょうか。
    テーマのfunctions.phpに記述します。

    <?php
    add_action( 'admin_head-tools.php', 'hook_admin_tools' );
    function hook_admin_tools() {
    	// 管理者以外のtools.phpのアクセスを許可しない
    	if ( !current_user_can( 'administrator' ) ) {
            wp_die( 'アクセスできません' );
        }
    }

    モデレーター gatespace

    (@gatespace)

    (かぶったので参考程度で)
    日本語Codex:ユーザーの種類と権限

    ダッシュボードのツールについてはインポート及びエクスポートについては権限があるので、権限グループによって制限することが可能(User Role Editorを利用して制限をかけられる)ですが、Press Thisについては「edit_posts」権限をもっていれば表示されるようですので、権限での制限は不可能です。
    (edit_postsを不許可にすると投稿そのものができなくなる)

    代替案として、

    • ツールメニュー自体を非表示にする
      Admin Menu Editorといったプラグインで実現可能ですが、URLを知っていたり、既にPressThisのブックマークレットを保存されていれば意味はありません。
    • Press Thisからの投稿のみ制限をする
      たぶんリファラーとかを取れば可能だとは思いますけど、具体的なコードは思いつきません。ごめんなさい。

    Tsuyoshi.さん
    gatespaceさん
    それぞれご回答ありがとうございました。

    gatespaceさんのお話は具体的で
    大変わかりやすかったです。
    勉強になりました。

    Tsuyoshi.さんが書いてくださいましたコードを
    functions.phpに貼り付けてみたところ、
    無事、管理者以外はtools.phpに入ることが出来なくなりました。

    お二方、本当にありがとうございました。

    解決済みとさせていただきます。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「管理者権限以外でツールのpress thisが使用できないようにしたい」には新たに返信することはできません。