1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WordPressユーザーに権限を追加したメモ

Last updated at Posted at 2024-01-31

WordPressでスライドショープラグインに画像を登録したいけど、
管理画面にはどこにも「プラグイン」とか「設定」なんてメニューは無いし、
管理者権限をもらっておらず分かる人も居なくて登録できない(途方に暮れる)とき。

やったこと

1. 現在の権限を確認

WordPress管理画面の「ユーザー>ユーザー一覧」からログインしている「ユーザー権限グループ」を確認したが、「ショップ運営者」?
なにそれ?WordPressの標準じゃない。

screenshot.jpg

※標準のユーザーについて: https://ja.wordpress.org/support/article/roles-and-capabilities

2. 現在の権限のスラッグ(英語のキーワード)を確認

WordPressの標準でないためスラッグが何なのか検討がつかないので、
一旦、single.phpかどこかに今のユーザーが何なのか吐き出す。
吐き出されたものでroleの単語を検索してみると「shop_manager」と分かった。
分かったらすぐに消してもとに戻す。

$user_info = get_user_by('email', 'example@example.com');
var_dump($user_info);

※最初 get_userdata()で出そうとしたが、下記ページの「Source」を見るとget_user_by()が関数の中身で使われていて、
https://developer.wordpress.org/reference/functions/get_userdata/

get_user_by()はユーザーIDでなくても、メールアドレスから辿れることが下記の「Parameters」によく読むと書いてあったのでこれを使った。
https://developer.wordpress.org/reference/functions/get_user_by/

3. functions.phpで判明したスラッグに対して権限を付与

下記をfunctions.phpの一番最後に記載。
そしたら、左メニューに「プラグイン」と「設定」が表示された:clap:

一番最後の1は優先度(プラグインが優先度決めているとこちらが書いたものが動かないため)。下記の「Parameters」参照
https://developer.wordpress.org/reference/functions/add_action/#parameters

add_action('admin_init', function() {
    $role = get_role( 'shop_manager' );

    // 「プラグイン」メニューの権限
    $role->add_cap( 'install_plugins' );
    $role->add_cap( 'activate_plugins' );
    $role->add_cap( 'update_plugins' );
    $role->add_cap( 'delete_plugins' );
    $role->add_cap( 'edit_plugins' );
    $role->add_cap( 'resume_plugins' );

    // 「設定」メニューの権限
    $role->add_cap( 'manage_options' );
}, 1);

なお下記によると、1度上記を反映して、ソースコードを消しただけでは元に戻らない(権限が削除されない)らしいので要注意とのこと。

参考: https://satoshimurata.com/wordpress-roles-and-capabilities

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?