Quando criamos no WordPress cadastro de usuário no frontend, muitas vezes queremos que criar também um painel para esse usuário e usamos muitas vezes o arquivo author.php, e recuperar a informação do usuário.
Só que dependo do projeto, precisamos alterar ao slug, ao invés de author, usar outros nome.
Esse tutorial, mostrarei como alterar esse slug, e nosso caso, para profile, mas podendo ser alterado pra qualquer outro nome que preferir.
No arquivo functions.php, e adicione esse código:
[php]
/**
* Cria uma função
**/
function change_slug_author() {
/**
* Precisamos ter acesso ao $wp_rewrite,
* como estamos no escopo de uma função
* usaremos global
*/
global $wp_rewrite;
//Definimos uma variável para novo slug
$slug = ‘profile’;
/**
* Vamos atribuir o novo slug
* ao atributo author_base
**/
//
$wp_rewrite->author_base =$slug;
}
/**
* Vamos adicionar a função ao add_action,
* como gancho init
*/
add_action(‘init’, ‘change_slug_author’);
[/php]
Depois de alterar, é necessário ir no Painel do WordPress, acessar Configurações > Links Permanentes. E depois clicar em Salvar Alterações, lembrando que deixe marcado a opção Nome do Post.
Já podemos acessar a URL com Novo slug, vamos dizer que nome do usuário é mxmasters, então acessaria assim:
http://www.seusite.com.br/profile/mxmasters
Agora vamos criar um arquivo chamado author.php, e recuperar o valor vindo da URL.
[php]
<?php get_header(); ?>
<?php $user = (get_query_var(‘author_name’)) ? get_user_by(‘slug’, get_query_var(‘author_name’)) : get_userdata(get_query_var(‘author’)); ?>O Nome do usuário é : <?php echo $user->first_name?>
<?php get_footer(); ?>
[/php]
Pronto, dessa forma você pode personalizar, pra exibir informações do usuário, de acordo com suas necessidade.
Espero que tenham gostado, e até a próxima.
Olá,
Como eu faço para deixar em meu site worpdress como http://www.seusite.com.br/paginadoautor no caso o dominio.sitee/nomedeusuario sem o profile entre o nome e o dominio. Caso se não for encontrado url com aquele nome(usuario) retornar um erro de não encontrado.