Como sempre, eu andava às voltas com um dilema enquanto tentava automatizar o link de contato dos autores dentro dos posts: chamar o endereço do perfil no GooglePlus dos dados do autor (aqueles que a gente insere na página “Seu Perfil”).
MAS pera, quem usa WordPress já notou algo errado… Não existe esse campo de GooglePlus lá 🙁
Uma gambiarra comum é colocar o endereço de qualquer rede social ali e proceder normalmente: por exemplo, pra chamar o link do Facebook (campo que não existe normalmente), coloca-se o URL do perfil no campo do AIM, e o chama pelo <?php the_author_meta(‘aim’); ?>. Uma gambiarrinha já que o campo não é pra isso, mas funciona.
Não sei porque o time de desenvolvimento não mudou isso ainda, parece que o sistema parou no tempo e ainda oferece opções apenas de AIM, Yahoo Instant Messenger e Google Talk. Talvez no exterior isso seja popularíssimo, mas por aqui precisamos de coisas mais simples: Twitter, Facebook, G+, etc.
Pois bem, como não queria gambiarra, fiz um monte de ca bobagem até enfim encontrar a solução ideal, com algumas pequenas modificações no original. Você verá pela estrutura que é bem fácil inserir outros campos e depois chamar os contatos no perfil do autor em qualquer lugar.
Primeiro, a aparência da página de autor normal.
E agora depois das alterações que serão feitas:
Melhor, não? Vamos fazer já.
Abra seu arquivo functions.php e insira o seguinte:
// novas infos de contato function novos_contatos($contactmethods) { unset($contactmethods['aim']); unset($contactmethods['yim']); unset($contactmethods['jabber']); $contactmethods['facebook'] = 'Facebook'; $contactmethods['twitter'] = 'Twitter'; $contactmethods['linkedin'] = 'LinkedIn'; $contactmethods['gplus'] = 'GooglePlus'; $contactmethods['pinterest'] = 'Pinterest'; return $contactmethods; } add_filter('user_contactmethods', 'novos_contatos');
Com essa nova função você desabilitou os contatos antigos com os “unset”. Ou seja, se quiser manter algum deles, é só apagar a linha correspondente de unset.
Depois, “contactmethods” criam novos campos; no caso serão cinco novos contatos com as redes mais populares, acrescida do LinkedIn. Vá então ao seu perfil e digite nos campos correspondentes as informações. Não esqueça de salvar.
Para chamá-las no seu tema, use no lugar desejado:
<a href="<?php the_author_meta('facebook', $current_author->ID); ?>">Facebook</a>
Isso cria um link para o conteúdo do campo Facebook. Para as outras redes é o mesmo sistema, basta trocar o the_author_meta pelo que vai usar. Se quiser chamar o URL do seu Google+, use gplus, e assim por diante.
Como disse, é fácil adicionar campos. Se você quer, digamos, ter um campo ali para o Orkut, adicione um contactmethods, assim:
$contactmethods['orkut'] = 'Orkut';
Isso é muito útil pra quem quer criar caixas de autor com informações de contato no perfil, por exemplo, ou linkar o avatar em algum ponto com a rede social. Dúvidas e sugestões, comente!
Origem: How to Add Custom User Contact Info in WordPress, de Thomas Griffin.
5 Comments
Me ajudou muito cara! Valeu. 😉
Boa tarde
como voce adicionou os botoes ao “sobre este autor” e as opções “x” artigos de … ?
teria alguma forma de anexar automaticamente as redes cadastradas no perfil, a opção “sobre o autor” ?
Olá,
Tem que fazer em PHP uma série de “if” para checar se o campo tem alguma informação e então exibir o botão – que é estilizado em CSS. Um exemplo comentado (só com um botão):
ID); ?>">Facebook
Assim você vai criar um link para o Facebook e pode estilizar para o efeito de botão. Use o “inspecionar elemento” do navegador pra checar como eu fiz, mas é simples: só usar text-indent negativo no texto do link e colocar a imagem como background.
Quanto ao “x artigos”, veja aqui http://www.tutoriart.com.br/snippet/contador-de-artigos-por-autor/
Daniel meu comentário não é sobre o post, eu assino sua newsletter mas a cor do texto que aparece lá é muito clara, é quase branco, porque você deixa assim? coloca uma cor mais escura ou até mesmo preto.
Abraços!!!
Já mudei. Obrigado por me lembrar, estava pra arrumar isso fazia tempo…