
Inagurando el frio invierno 2011, comparto con ustedes otro tutorial y más que nada recurso de para WordPress.
Muchas veces en nuestro sitio queremos agregar campos personalizados para los usuarios. Ya sea un nacionalidad, edad, dirección de Facebook, nombre de cuenta de Twitter, número de teléfono, direcciones, etc.
Como actualmente WordPress no trae aún en forma nativa la gestión de campos personalizados para usuarios (y ya vamos en la version 3.1.3), podemos hacer una pequeña modificación en nuestro archivo functions.php del theme.
Por si no recuerdan, el archivo functions.php es el cual agrupa las funciones personalizadas que va a utilizar nuestro tema.
Abrimos el archivo mencionado y simplemente agregamos el siguiente código:
<?php
/* Con este bloque mostramos en el admin el campo adicional en el admin */
add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );
function extra_user_profile_fields( $user ) { ?>
<h3><?php _e("Campos adicionales", "blank"); ?></h3>
<table class="form-table">
<tr>
<th><label for="url-twitter"><?php _e("Twitter"); ?></label></th>
<td>
<input type="text" name="url-twitter" id="url-twitter"
value="<?php echo esc_attr( get_the_author_meta( 'url-twitter', $user->ID ) ); ?>"
class="regular-text" /><br />
<span class="description">
<?php _e("Inserta tu direccion o nombre de cuenta de Twitter"); ?></span>
</td>
</tr>
</table>
<?php }
/* Este bloque actualiza el campo al guardar los cambios */
add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );
function save_extra_user_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) ) { return false; }
/* Actualizamos cada campo adicional con su ID */
update_usermeta( $user_id, 'url-twitter', $_POST['url-twitter'] );
}
?>
El código que pegamos anteriormente es para cualquier campo que queramos, pero en este caso yo trabaje con un campo de pedir la URL de una cuenta de Twitter. Tras colocar ese código y guardar deberiamos ver en nuestro panel de usuario en WordPress lo siguiente:

Ahora si rellenamos la información correspondiente, queremos que esta información se despliegue en nuestro theme, para hacer esto colocamos el siguiente código:
<?php the_author_meta('url-twitter'); ?>
También es posible ocupar este código como información para URL, en este caso sería simplemente:
<a href="<?php the_author_meta('url-twitter'); ?>">Mi Twitter</a>


