Quantcast
Channel: iMasters - Paulo Faustino
Viewing all articles
Browse latest Browse all 20

Como adicionar mais campos no perfil de usuários do WordPress

$
0
0

Para quem utiliza o Diretório de Blogs, percebe que algumas das opções do perfil de usuário incluem campos personalizados (Custom Fields) não existem no padrão de utilização do WordPress, ou seja, criamos o código personalizado para introduzir essas alterações no tema que desenvolvemos para o Diretório.

Essas alterações no perfil do usuário são bastante interessantes quando o objetivo é mostrar informações complementares, como a página do Facebook, o perfil no Twitter, entre outras.

Fizemos isso também no nosso site sobre como ganhar dinheiro, onde os perfis dos autores incluem links para seus perfis nas mídias sociais. Essa opção é interessante para quem possui sites com múltiplos autores e/ou registro aberto a usuários.

Inserir campos personalizados no tema

O código que desenvolvemos para incluir esses campos personalizados no tema é na verdade muito simples de executar. Você pode, inclusive, editar o código para acrescentar outros campos e/ou editar os campos já criados.

Em nível de funcionamento, você precisa apenas copiar o código e colá-lo dentro do arquivo functions.php do seu template WordPress:

<?php
// CAMPOS DE PERFIL PERSONALIZADOS
add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );

function my_show_extra_profile_fields( $user ) { ?>

<h3>Você nas redes sociais</h3>

<table class="form-table">

<tr>
<th><label for="twitter">Twitter</label></th>

<td>
<input type="text" name="twitteruser" id="twitteruser" value="<?php echo esc_attr( get_the_author_meta( 'twitteruser', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">O seu nome de usuário do Twitter</span>
</td>
</tr>

<tr>
<th><label for="facebookuser">Facebook</label></th>

<td>
<input type="text" name="facebookuser" id="facebookuser" value="<?php echo esc_attr( get_the_author_meta( 'facebookuser', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">O seu perfil no Facebook (URL)</span>
</td>
</tr>

</table>

<h3>Mais sobre si</h3>

<table class="form-table">

<tr>
<th><label for="pais">País</label></th>

<td>
<input type="text" name="pais" id="pais" value="<?php echo esc_attr( get_the_author_meta( 'pais', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">O seu país</span>
</td>
</tr>

<tr>
<th><label for="cidade">Cidade</label></th>

<td>
<input type="text" name="cidade" id="cidade" value="<?php echo esc_attr( get_the_author_meta( 'cidade', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Cidade onde se encontra</span>
</td>
</tr>

</table>
<?php } ?>

Gravar os dados inseridos

Juntamente com o código anterior, você irá precisar de um segundo código que diga ao WordPress para gravar as informações e mantê-las intactas até o usuário decidir reescrever esses campos com novas informações. O processo é idêntico ao primeiro, ou seja, você tem de copiar e colar o código no arquivo functions.php do seu tema WordPress:

<?php
// GUARDAR E MANTER INFO DOS CAMPOS
add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );

function my_save_extra_profile_fields( $user_id ) {

if ( !current_user_can( 'edit_user', $user_id ) )
return false;

update_usermeta( $user_id, 'twitteruser', $_POST['twitteruser'] );
update_usermeta( $user_id, 'facebookuser', $_POST['facebookuser'] );
update_usermeta( $user_id, 'cidade', $_POST['cidade'] );
update_usermeta( $user_id, 'pais', $_POST['pais'] );
}
?>

Mostrar os dados no site

Depois de configurar todos os campos de preenchimento dos dados, você vai desejar mostrar esses dados no seu site para que os leitores possam acessar as informações referentes aos perfis do Twitter, do Facebook etc. Para isso, utilize um dos seguintes códigos:

<?php if ( $curauth->facebookuser ) { ?>
<a href="http://www.facebook.com/<?php echo $curauth->facebookuser; ?>" target="_blank"><div class="facebookb">facebook</div></a>
<?php } ?>
<?php if ( $curauth->twitteruser ) { ?>
<a href="http://www.twitter.com/<?php echo $curauth->twitteruser; ?>" target="_blank"><div class="twitterb">twitter</div></a>
<?php } ?>

É basicamente isso. Não precisará de mais nada para que os seus perfis de usuário estejam mais completos e funcionais do que nunca!

Até o próximo!


Viewing all articles
Browse latest Browse all 20