Existe uma maneira de renomear o nome da função do usuário sem o plugin?

20

Existe alguma maneira de renomear um nome de função do usuário via hook, em vez de usar o plugin?

Editar

Por exemplo, administrator » owner

    
por Sean Lee 15.07.2011 / 09:53

5 respostas

40
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');

enlace

    
por Ján Bočínec 02.09.2011 / 08:31
2

Uma solução simples seria simplesmente adicionar uma função de usuário usando add_role , assim você pode nomear o que quiser e adicionar os recursos que quiser. enlace

    
por Wyck 15.07.2011 / 23:04
2

Na verdade, existem muitas maneiras de conseguir isso:

Com pure php e mysql você pode editar a entrada serializada no banco de dados. De fato, o Wordpress armazena a matriz serializada de funções na tabela wp_options .

Então:

  1. Buscar o array serializado:
    SELECT option_value as serialized_string FROM wp_options WHERE option_name = 'wp_user_roles';
  2. Desserializar a string - php: $rolesArray = unserialize($serialized_string)
  3. Altere o nome da função - php: $rolesArray['role_key']['name'] = "New name"
  4. Serializar de volta a matriz - php: echo serialize($rolesArray)
  5. Substitua o conteúdo do db option_value pela saída do ponto anterior

Se você se sentir confiante com o Wordpress, você pode até usar o REPL incorporado do Wordpress em wp-cli para buscar o valor armazenado com get_option('wp_user_roles') e, em seguida, use update_option para atualizá-lo.

E (sempre) lembre-se de fazer o backup do banco de dados antes da manipulação das opções;)

Caso contrário, se você não se importa com o valor de role_key…

… é muito fácil conseguir isso com wp-cli :

  1. duplique a função existente - $ wp role create new_role 'New Role' --clone=old_role
  2. exclua o antigo - $ wp role delete old_role
  3. associe o new_role ao (s) usuário (s).
  4. eventualmente repita os passos 1 e 2 até old_role = new_role
por Dharma 15.09.2016 / 15:01
1

Você pode criar um arquivo de localização personalizado. Obtenha este arquivo: enlace e edite usando a ferramenta PoEdit (por exemplo). Na próxima etapa, salve o arquivo de localização como en_GB.mo (ou outro) e edite o arquivo wp-config:

define ("WPLANG", "en_GB");

    
por czepol 15.07.2011 / 22:41
0

Você pode editá-lo diretamente no seu banco de dados e ele será editado permanentemente para o seu site. Aqui é onde o WP mantém as funções do usuário

SELECT * from blog_options WHERE option_name = 'blog_user_roles'
    
por artnikpro 13.08.2015 / 19:58