Mon site nécessite une connexion avant de visualiser une page et cela fonctionne très bien:
function wpse_131562_redirect() {
if ( !is_user_logged_in() )
{auth_redirect();
}}
add_action('template_redirect', 'wpse_131562_redirect');
Mais évidemment, cela signifie que le lien vers la page de mot de passe perdu est redirigé vers la page de connexion. J'ai essayé de le changer pour:
function wpse_131562_redirect() {
if ( !is_user_logged_in() || (!ispage('lost-password') ))
{auth_redirect();
}}
add_action('template_redirect', 'wpse_131562_redirect');
Mais il a le même problème, et lorsque j’ai essayé d’utiliser wp_lostpassword_url, il s’est complètement cassé.
Comment puis-je restreindre l'accès à tout ce que la page de mot de passe perdu?
Merci
Je crois que si votre déclaration est incorrecte, il devrait s'agir d'un AND (&&
) pas OU
alors essayez
if ( ! is_user_logged_in() && ! is_page( 'lost-password' ) ) {
EDIT
Essayez d'utiliser $object = get_queried_object()
pour vérifier le post slug
$object = get_queried_object();
if ( ! is_user_logged_in() && ( ! $object || 'my-account' !== $object->post_name ) ) {
// ...
EDIT 2 Le slug de page était erroné, donc mis à jour dans le deuxième exemple.