Cómo añadir un nuevo campo en el perfil de Wordpress

Hola a todo, aprovechando la nueva mejora que hemos implementado en Geeky Theory, donde permite al usuario ganar dinero escribiendo Posts. Vamos a explicar cómo hemos añadido un nuevo campo en el perfil de usuario de wordpress.

Para no hacer el tutorial muy largo y aburrido, vamos a implementar el código primero y explicaremos más tarde cada parte.

Implementación

Para añadir un nuevo campo en wordpress tan solo tenemos que navegar hasta la carpeta de nuestro tema en wordpress (wp-content/themes/nombredeltema/) y añadir al final del archivo functions.php el siguiente script PHP:

add_action( 'show_user_profile', 'newField' ); add_action( 'edit_user_profile', 'newField' ); function newField( $user ) { ?> <h3>Título del Nuevo Campo</h3> <table class="form-table"> <tr> <th><label for="nuevocampo">Campo a añadir</label></th> <td> <input type="text" name="nuevocampo" id="nuevocampo" value="<?php echo esc_attr( get_the_author_meta( 'nuevocampo', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description">Descripcion</span> </td> </tr> </table> <?php } add_action( 'personal_options_update', 'saveNewField' ); add_action( 'edit_user_profile_update', 'saveNewField' ); function saveNewField( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) return false; /* Copy and paste this line for additional fields. Make sure to change 'nuevocampo' to the field ID. */ update_usermeta( $user_id, 'nuevocampo', $_POST['nuevocampo'] ); update_usermeta( $user_id, 'nuevocampo', $_POST['nuevocampo'] ); }

Básicamente el código insertado en el archivo functions.php hace uso de los Hooks de WordPress que se pueden definir como pequeñas instancias de código que tienen como base las clases del núcleo de WordPress, lo que permite crear funciones personalizadas para poder modificar o añadir ciertas funcionalidades a un blog sin la necesidad de modificar los archivos base de una instalación de WordPress.

Así pues, estamos diciendo que añada a la funcionalidad "show_user_profile" el nuevo código que hay dentro de la función newField, añadiendo una tabla html e insertando el valor del campo que queremos modificar.

Seguidamente, hacemos uso de otro hook para cuando guardamos los cambios realizados por el usuario. En este script hacemos uso de la función update_usermeta, insertando en la tabla metadatos de nuestra base de datos los valores introducidos por el usuario.

Uso de los datos que el usuario ha guardado en el nuevo campo

Cómo hemos dicho anteriormente los datos introducidos por el usuario son almacenados en la base de datos de wordpress. Para recuperar estos datos mediante funciones nativas de wordpress podemos usar la siguiente función:

get_the_author_meta( "nuevocampo", $user_id )

Y esto es todo, espero que os haya gustado el pequeño tutorial y os haya servido para darle un poco más de personalidad a vuestras webs.