先ほど、Wordpressであるプラグインを使用して、特定のユーザーに特定の権限を与えるような設定をしようとしたら、管理者である自分自身の権限をすべて失ってしまうような誤操作をしてしまいました。
お客さまのサイトだったので、かなり、青ざめつつも、絶対に何とかなるはずだと、あちこちを調べました。
結果としては、functions.php にコードを書いて、強制的に権限を復活させることができました。
自分の防備録も兼ねて、ここに投稿しておきます。
WordPressで、うっかり管理者権限のユーザーをすべて削除してしまうと、プラグイン、テーマ、ユーザーの管理など管理者権限でしかできないことができなくなってしまいます。
そんなときは、functions.php に以下のコードを追記して、ユーザーを強制的に管理者に変更することができます。
function set_user_role() {
$user = new WP_User( 1 );
$user->set_role( 'administrator');
}
add_action( 'init', 'set_user_role' );
WP_User( 1 )の中の、1 というのは、最初に追加されたユーザーです。
2番めに追加されたユーザーを管理者に変更する場合には、2 を指定します。
また、編集者に、権限を追加したいという場合は、以下のコードで、個別に権限を付加することができます。
これも、functions.phpに追記します。
function change_caps(){
$role = get_role( 'editor' ); // 編集者
$role->add_cap('activate_plugins' );
$role->add_cap('delete_plugins' );
$role->add_cap('edit_dashboard' );
$role->add_cap('edit_files' );
$role->add_cap('edit_theme_options' );
$role->add_cap('export' );
$role->add_cap('import' );
$role->add_cap('list_users' );
$role->add_cap('manage_options' );
$role->add_cap('promote_users' );
$role->add_cap('remove_users' );
$role->add_cap('switch_themes' );
$role->add_cap('update_core' );
$role->add_cap('update_plugins' );
$role->add_cap('update_themes' );
$role->add_cap('install_plugins' );
$role->add_cap('install_themes' );
$role->add_cap('delete_themes' );
$role->add_cap('edit_plugins' );
$role->add_cap('edit_themes' );
$role->add_cap('edit_users' );
$role->add_cap('create_users' );
$role->add_cap('delete_users' );
}
add_action( 'admin_init', 'change_caps' );
上の例では、編集者(editor)でしたが、以下のように指定することができます。
- 管理者 : administrator
- 編集者 : editor
- 投稿者 : author
- 寄稿者 : contributor
- 購読者 : subscriber
また、権限についての詳細は、『ユーザーの種類と権限』を参考にしてください。
処理としては、add_cap で権限を追加しましたが、逆に権限を削除する場合には、remove_cap を使います。
$role->remove_cap(‘delete_users’ );
という感じで書きます。
最後に・・・・
これらのコードは、一度実行したあとは、再度実行する必要のないものですので、削除しておきましょう。
削除しないで残してしまうと、Wordpressがアクションを起こすたびに実行され、無駄な処理でその分動きが遅くなってしまいます。
一度実行したあとには、必ず削除しておいてください。
Amazonプライム会員なら無料で読めるビジネス書4選
上を目指すために読んでおきたい8冊
私が買ってよかったパソコン&iPhone関連商品 トップ8
参考記事:自撮りするなら広角レンズがオススメ