Você está procurando uma maneira de alterar o slug do URL do autor? Este trecho alterará o slug padrão, mysite.com/author/name, para mysite.com/profile/name. No entanto, você pode alterá-lo para o que desejar.
Instruções:
- Adicione este código ao arquivo functions.php do seu tema ou em um plugin específico do site.
- Altere
profilena linha 4 para qualquer nome que você desejar.
add_action('init', 'cng_author_base');
function cng_author_base() {
global $wp_rewrite;
$author_slug = 'profile'; // change slug name
$wp_rewrite->author_base = $author_slug;
}
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar / colar trechos de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 9 Melhores Ferramentas de SEO para Aumentar o Tráfego do Seu Site, RAPIDAMENTE!
Nem o seu código nem o meu funcionarão! ! ! ! É irritante!……
// Altera a base do autor para a URL do autor.
function custom_author_base() {
global $wp_rewrite;
$author_slug = ‘@’; // Define o slug da base do autor para ‘@username’
$wp_rewrite->author_base = $author_slug;
}
add_action( ‘init’, ‘custom_author_base’ );
// Reescreve a URL do autor para a nova estrutura de URL.
function custom_author_rewrite_rules( $author_rewrite ) {
$author_new_rules = array(
‘@([^/]+)/?$’ => ‘index.php?author_name=$matches[1]’
);
$author_rewrite = array_merge( $author_new_rules, $author_rewrite );
return $author_rewrite;
}
add_filter( ‘author_rewrite_rules’, ‘custom_author_rewrite_rules’ );
// Redireciona a URL antiga do autor para a nova estrutura de URL.
function custom_author_redirect() {
if ( is_author() && strpos( $_SERVER[‘REQUEST_URI’], ‘/author/’ ) !== false ) {
wp_redirect( home_url( str_replace( ‘/author/’, ‘/’, $_SERVER[‘REQUEST_URI’] ) ), 301 );
exit();
}
}
add_action( ‘template_redirect’, ‘custom_author_redirect’ );
Olá, é possível alterar o slug do autor apenas para tipos de postagem personalizados usando uma condição if?
Obrigado
Este código é para alterar a base do autor, não o slug do autor.
Isso não é para os nomes de autores individuais, mas sim para alterar o slug /author/ para outra coisa, como /profile/. O resultado final seria /profile/nomedeautor
Obrigado!!
Muito obrigado!!
obrigado
obrigado
Lembra da pergunta do Mike Kennedy?
Como você pode ter apenas site.com/nome-do-autor/ ?
Se você definir author_slug = '' ;
isso funcionará para as páginas do autor, mas no meu caso agora recebo erros 404 não encontrados para páginas normais. Parece que um slug de autor vazio quebra a reescrita para páginas normais.
Alguém tem uma solução?
O que você pode tentar é ir em “permalinks” dentro de configurações e depois clicar em “salvar alterações” para limpar as regras de reescrita.
[…] para Kevin Chard pelo legal […]
Eu consegui alterar a estrutura de permalink do author_base com um código semelhante ao acima, mas criei uma função personalizada e estou me perguntando se eu poderia ter 2 author_base diferentes com base na função do usuário. A estrutura padrão para administradores, autores, etc. (/author/nome_do_autor) e outra para a nova função do usuário (/gift-registry/nome_do_autor).
Ryan
Obrigado!
@wpsnipp:disqus é possível criar slugs de autor personalizados com base nas funções do usuário?
adicione $wp_rewrite->flush_rules()
no final da função, funcionará sem 404 🙂
obrigado mano
Coloquei isso dentro do functions.php e mudou o slug, no entanto, estou recebendo um 404 ao visitar o novo slug. Alguma sugestão? Obrigado
Olá Zach, se você continuar tendo problemas, pode tentar este plugin, pois você não deve ter nenhum problema.
http://wordpress.org/extend/plugins/author-slug/
Olá Kevin,
Obrigado pela sugestão. No entanto, eu vi esse plugin e adoraria descobrir como usá-lo sem um plugin — estou construindo um site muito grande e estou tentando reduzir o número de plugins.
Obrigado,
Zach
Olá Zach, você pode simplesmente tirar o código do plugin e colocá-lo dentro do seu functions.php e isso funcionará bem.
Para qualquer outra pessoa com o mesmo problema… apenas limpe os permalinks (Ir em Configurações->Permalinks os limpa)