Para agregar a la respuesta de @ EAMann, debe ajustar su llamada wp_get_current_user()
(o cualquier llamada que intente acceder a una función definida dentro de pluggable.php
) dentro de la acción 'plugins_loaded'
.
Entonces, si estás colocando esto dentro de tu archivo functions.php
, hazlo así:
add_action( 'plugins_loaded', 'get_user_info' );
function get_user_info(){
$current_user = wp_get_current_user();
if ( !($current_user instanceof WP_User) )
return;
echo $current_user->user_login;
// Do the remaining stuff that has to happen once you've gotten your user info
}
Tenga en cuenta que no estamos interesados en lo que esta función devuelve . Estamos interesados en cuando esta función se ejecuta , es decir, después de el archivo pluggable.php
se ha cargado y definido su función wp_get_current_user()
.
Por lo tanto, no espere hacer nada con el valor de retorno para esta función. En su lugar, considera esta función como el punto de partida para todo lo que quieres hacer una vez que tengas la información del usuario actual.
Haciéndolo en un plugin
En aras de la integridad, a continuación le indicamos cómo accederá a una función conectable similar desde el contexto de su propio complemento:
(ponga esto dentro de un archivo .php dentro de su carpeta plugins
)
class WPSE_58429 {
public function __construct(){
add_action( 'plugins_loaded', array( $this, 'check_if_user_logged_in' ) );
}
public function check_if_user_logged_in(){
if ( is_user_logged_in() ){
// ... do stuff for your logged-in user
}
}
}
$wpse_58429_plugin = new WPSE_58429();
He usado esta técnica con éxito para un tipo muy simple de complemento "Próximamente" que redirige al usuario a una página específica si no ha iniciado sesión con wp_safe_redirect()
.