Bloccare pagine se non è stato eseguito il login in Wordpress
Quello che vogliamo fare è bloccare l'accesso a tutte le pagine a meno che non si è loggati in Wodpress.
A parte ovviamente la pagina di login, che in genere è condivisa con il dettaglio account.
Per fare questo ci sono vari modi, ed io usato questo codice PHP da mettere nel functions.php del vostro template:
function redirect_to_specific_page() {
if (!is_page('mio-account') && !is_user_logged_in()) {
wp_redirect('https://www.sito.it/mio-account/', 301);
exit();
}
}
add_action('template_redirect', 'redirect_to_specific_page');
In pratrica andiamo a controllare che lo slug della pagina non sia quello dove si fa il login (per evitare redirect circolari infiniti) e che l'utente sia loggato.
Nello specifico con le funzioni is_page (passando lo slug) e is_user_logged_in.
Nel caso rimandiamo l'utente al login con wp_redirect.
Enjoy!
php wordpress is_user_logged_in is_page wp_redirect
Commentami!