Autenticação / mecanismo de login (não wp-admin)

Estou desenvolvendo um tema. Eu preciso ter um sistema de login do usuário, que permite que os usuários vejam todos os conteúdos do aplicativo e interajam com ele somente após o login (e não o login do painel de administração).

Eu preciso redirect todo o tráfego no início de uma página de login.php em vez de wordpress “home” (page.php), se os usuários não estiverem logados. Caso contrário, vá em “casa”.

Qual é o caminho certo para fazer isso na wordpress sem usar plugins?

Solutions Collecting From Web of "Autenticação / mecanismo de login (não wp-admin)"

Você pode usar o wp_loaded hook para empurrar todo o tráfego não logado para a canvas de login. Observe como eu passei $_SERVER['REQUEST_URI'] para wp_login_url() – isso é passado como um parâmetro de URL para a página de login e, uma vez que um usuário wp_login_url() o login com sucesso, eles serão redirecionados de volta para o URL que eles estavam originalmente tentando visitar.

 function wpse_178177_redirect_to_login_if_guest() { if ( ! is_admin() && ! is_user_logged_in() && $GLOBALS['pagenow'] !== 'wp-login.php' ) { wp_redirect( wp_login_url( $_SERVER['REQUEST_URI'] ) ); exit; } } add_action( 'wp_loaded', 'wpse_178177_redirect_to_login_if_guest' );