Para adicionar à resposta do @ EAMann, você precisa agrupar sua chamada wp_get_current_user()
(ou qualquer chamada que tente acessar uma função definida em pluggable.php
) dentro da ação 'plugins_loaded'
.
Então, se você colocar isso no arquivo functions.php
, faça assim:
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
}
Observe que não estamos interessados no que esta função retorna . Estamos interessados em quando esta função executa , ou seja, após o arquivo pluggable.php
carregou e definiu sua função wp_get_current_user()
.
Portanto, não espere fazer nada com o valor de retorno para essa função. Em vez disso, considere essa função como o ponto de partida de tudo o que você deseja fazer depois de obter as informações do usuário atual.
Fazendo isso em um plugin
Por questão de integridade, aqui está como você acessaria uma função conectável semelhante dentro do contexto do seu próprio plugin:
(coloque isso dentro de um arquivo .php dentro da pasta 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();
Eu usei esta técnica com sucesso para um tipo de plugin "Coming Soon" muito simples que redireciona o usuário para uma página específica se ele não estiver logado usando wp_safe_redirect()
.