obtener usuario actual no funciona
Estaba intentando usar este código para obtener información del usuario actual, pero no muestra nada. Mi versión de WordPress es la 3.3.1
<?php
wp_get_current_user();
/**
* @ejemplo Uso seguro: $current_user = wp_get_current_user();
* if ( !($current_user instanceof WP_User) )
* return;
*/
echo 'Nombre de usuario: ' . $current_user->user_login . '<br />';
echo 'Email del usuario: ' . $current_user->user_email . '<br />';
echo 'Nombre del usuario: ' . $current_user->user_firstname . '<br />';
echo 'Apellido del usuario: ' . $current_user->user_lastname . '<br />';
echo 'Nombre para mostrar: ' . $current_user->display_name . '<br />';
echo 'ID del usuario: ' . $current_user->ID . '<br />';
?>
El resultado es:
Nombre de usuario:
Email del usuario:
Nombre del usuario:
Apellido del usuario:
Nombre para mostrar:
ID del usuario:

¿Has probado utilizar la alternativa de "Uso seguro" que se proporciona en la sección comentada?
Honestamente, no tengo experiencia con wp_get_current_user()
, ya que nunca lo he usado, pero de cualquier manera, esto debería funcionar:
global $current_user;
echo 'Nombre de usuario: ' . $current_user->user_login . '<br />';
echo 'Correo electrónico del usuario: ' . $current_user->user_email . '<br />';
echo 'Nombre del usuario: ' . $current_user->user_firstname . '<br />';
echo 'Apellido del usuario: ' . $current_user->user_lastname . '<br />';
echo 'Nombre para mostrar del usuario: ' . $current_user->display_name . '<br />';
echo 'ID del usuario: ' . $current_user->ID;
wp_get_current_user()
debería hacer lo mismo, ya que no es más que un envoltorio para las dos primeras líneas anteriores; sin embargo, lo anterior tiene que funcionar.

Antes de WordPress 4.5,
get_currentuserinfo()
era una opción aceptable, pero ahora está obsoleta, en favor dewp_get_current_user()
.
Puedes asignar wp_get_current_user()
a una variable para acceder fácilmente a ella en tu función o página:
$current_user = wp_get_current_user();
Ejemplo:
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
echo 'Nombre de usuario: ' . $current_user->user_login . '<br />';
echo 'Correo electrónico: ' . $current_user->user_email . '<br />';
echo 'Nombre: ' . $current_user->user_firstname . '<br />';
echo 'Apellido: ' . $current_user->user_lastname . '<br />';
echo 'Nombre para mostrar: ' . $current_user->display_name . '<br />';
echo 'ID de usuario: '. $current_user->ID . '<br />';
echo 'Avatar: ' . get_avatar( $current_user->ID, 64 ) . '<br />';
} else {
echo 'Usuario no conectado.';
}
También es importante asegurarse de que todo esto se ejecute después del hook init
para evitar salidas en blanco.

Así es como puedes obtener el usuario actual:
global $current_user;
$current_user = wp_get_current_user();
Después de eso, puedes usar $current_user->ID
donde lo necesites.
Ejemplo:
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
echo 'Nombre de usuario: ' . $current_user->user_login . '--';
echo 'Correo electrónico: ' . $current_user->user_email . '--';
echo 'Nombre: ' . $current_user->user_firstname . '--';
echo 'Apellido: ' . $current_user->user_lastname . '--';
echo 'Nombre público: ' . $current_user->display_name . '--';
echo 'ID de usuario: '. $current_user->ID . '--';
} else {
echo 'Usuario no conectado.';
}

Mark, acabo de actualizar la respuesta, pero para responder tu pregunta, el global es innecesario ya que esa es la razón principal para usar wp_get_current_user()
(haz clic en el enlace para ver dónde la función accede al global si tienes curiosidad sobre cómo funciona).
