プラグインを使用する代わりに、フックを介してユーザーロール名を変更する方法はありますか?
例えば、administrator
"owner
です。
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/ /
簡単な解決策は、add_role
を使用してユーザーロールを追加することです。そうすれば、必要な名前を付けたり、必要な機能を追加したりできます。 http://codex.wordpress.org/Function_Reference/add_role
実際、それを実現する方法はたくさんあります。
pure phpおよびmysqlを使用すると、dbのシリアル化されたエントリを編集できます。実際、Wordpressは、wp_options
テーブルにロールのシリアル化された配列を格納します。
そう:
SELECT option_value as serialized_string FROM wp_options WHERE option_name = 'wp_user_roles';
$rolesArray = unserialize($serialized_string)
$rolesArray['role_key']['name'] = "New name"
echo serialize($rolesArray)
option_value
コンテンツを前のポイントからの出力に置き換えますWordpressに自信がある場合は、 wp-cliに埋め込まれたWordpress REPL を使用して、保存された値をget_option('wp_user_roles')
でフェッチすることもできます。次に、update_option
を使用して更新します。
そして(常に)オプション操作の前にデータベースをバックアップすることを忘れないでください;)
… wp-cli で簡単に実現できます:
$ wp role create new_role 'New Role' --clone=old_role
$ wp role delete old_role
カスタムローカライズファイルを作成できます。このファイルを入手してください: http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot そしてPoEditツールを使って編集してください(例えば)。次のステップでローカライゼーションファイルをen_GB.mo(またはその他)として保存し、wp-configファイルを編集します。
define( "WPLANG"、 "en_GB");
あなたはそれをあなたのDBで直接編集することができます、そしてそれはあなたのウェブサイトのために永久に編集されるでしょう。ここでWPがユーザーロールを保持します
SELECT * from blog_options WHERE option_name = 'blog_user_roles'