Para quem é utilizador do nosso Diretório de Blogs, especialmente depois do relançamento que efectuámos, percebe facilmente que algumas das opções do perfil de usuário, incluem campos personalizados (Custom Fields) que não existem no padrão de utilização do WordPress, ou seja, criámos código personalizado para introduzir essas alterações no Tema WordPress que desenvolvemos para o Diretório. Estas alterações ao perfil do usuário são extremamente interessantes quando o objetivo é mostrar informações complementares ao perfil do usuário, como a sua página do Facebook, o seu perfil no Twitter, entre outras.

Fizemos isso também no nosso blog sobre como ganhar dinheiro, onde os perfis dos autores incluem links para os seus perfis em mídias sociais como o Twitter e Facebook. Esta opção é igualmente interessante para quem tem blogs com múltiplos autores e/ou registro aberto a usuários.

campos de perfil

INSERIR CAMPOS PERSONALIZADOS NO TEMA

O código que desenvolvemos para incluir estes 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. Ao nível de funcionamento, você apenas necessita de copiar o código e colá-lo dentro do ficheiro 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á necessitar 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 ficheiro 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 BLOG

Depois de configurar todos os aspectos de preenchimento dos dados, você vai desejar mostrar esses dados no seu blog, para que os seus leitores possam acessar as informações referentes aos perfis do Twitter, Facebook, etc. Para o fazer, 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 } ?>

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

Até já!