web-dev-qa-db-ja.com

プラグインなしでユーザーロール名を変更する方法はありますか?

プラグインを使用する代わりに、フックを介してユーザーロール名を変更する方法はありますか?

編集する

例えば、administrator"ownerです。

25
Sean Lee
function change_role_name() {
    global $wp_roles;

    if ( ! isset( $wp_roles ) )
        $wp_roles = new WP_Roles();

    //You can list all currently available roles like this...
    //$roles = $wp_roles->get_names();
    //print_r($roles);

    //You can replace "administrator" with any other role "editor", "author", "contributor" or "subscriber"...
    $wp_roles->roles['administrator']['name'] = 'Owner';
    $wp_roles->role_names['administrator'] = 'Owner';           
}
add_action('init', 'change_role_name');

http://www.garyc40.com/2010/04/ultimate-guide-to-roles-and-capabilities/ /

43
Ján Bočínec

簡単な解決策は、add_roleを使用してユーザーロールを追加することです。そうすれば、必要な名前を付けたり、必要な機能を追加したりできます。 http://codex.wordpress.org/Function_Reference/add_role

3
Wyck

実際、それを実現する方法はたくさんあります。

pure phpおよびmysqlを使用すると、dbのシリアル化されたエントリを編集できます。実際、Wordpressは、wp_optionsテーブルにロールのシリアル化された配列を格納します。

そう:

  1. シリアル化された配列を取得します。
    SELECT option_value as serialized_string FROM wp_options WHERE option_name = 'wp_user_roles';
  2. 文字列のシリアル化を解除します– php:$rolesArray = unserialize($serialized_string)
  3. ロール名を変更します– php:$rolesArray['role_key']['name'] = "New name"
  4. 配列をシリアル化して戻す– php:echo serialize($rolesArray)
  5. Db option_valueコンテンツを前のポイントからの出力に置き換えます

Wordpressに自信がある場合は、 wp-cliに埋め込まれたWordpress REPL を使用して、保存された値をget_option('wp_user_roles')でフェッチすることもできます。次に、update_optionを使用して更新します。

そして(常に)オプション操作の前にデータベースをバックアップすることを忘れないでください;)


それ以外の場合、role_keyの値を気にしないと…

wp-cli で簡単に実現できます:

  1. 既存のロールを複製します– $ wp role create new_role 'New Role' --clone=old_role
  2. 古いものを削除します– $ wp role delete old_role
  3. 次に、new_roleをユーザーに関連付けます。
  4. old_role = new_roleまでステップ1と2を繰り返します
2
Dharma

カスタムローカライズファイルを作成できます。このファイルを入手してください: http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot そしてPoEditツールを使って編集してください(例えば)。次のステップでローカライゼーションファイルをen_GB.mo(またはその他)として保存し、wp-configファイルを編集します。

define( "WPLANG"、 "en_GB");

1
czepol

あなたはそれをあなたのDBで直接編集することができます、そしてそれはあなたのウェブサイトのために永久に編集されるでしょう。ここでWPがユーザーロールを保持します

SELECT * from blog_options WHERE option_name = 'blog_user_roles'
0
artnikpro