Câu trả lời:
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/
$wp_roles
bây giờ có một [role_objects]
phần của mảng.
Một giải pháp đơn giản là chỉ cần thêm vai trò người dùng bằng cách sử dụng add_role
, theo cách đó bạn có thể đặt tên cho nó bất cứ điều gì bạn muốn và thêm bất kỳ khả năng nào bạn muốn.
http://codex.wordpress.org/Function_Reference/add_role
Trên thực tế, có nhiều cách để đạt được điều đó:
Với php và mysql thuần túy, bạn có thể chỉnh sửa mục được tuần tự hóa trong db. Thật vậy, Wordpress lưu trữ các mảng vai trò nối tiếp trong wp_options
bảng.
Vì thế:
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
nội dung db bằng đầu ra từ điểm trướcNếu bạn cảm thấy tự tin với Wordpress, bạn thậm chí có thể sử dụng REPL Wordpress được nhúng trong wp-cli để tìm nạp giá trị được lưu trữ get_option('wp_user_roles')
và sau đó sử dụng update_option
để cập nhật nó.
Và (luôn luôn) nhớ sao lưu db trước khi thao tác tùy chọn;)
Thật dễ dàng để đạt được điều đó với wp-cli :
$ wp role create new_role 'New Role' --clone=old_role
$ wp role delete old_role
Bạn có thể tạo một tập tin nội địa hóa tùy chỉnh. Lấy tệp này: http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot và chỉnh sửa bằng công cụ PoEdit (ví dụ). Trong bước tiếp theo, lưu tệp bản địa hóa dưới dạng en_GB.mo (hoặc loại khác) và chỉnh sửa tệp wp-config:
định nghĩa ("WPLANG", "en_GB");