J'ai créé une série d'articles et de pages protégés par mot de passe sur mon site Web à l'aide du paramètre de visibilité intégré. Ils utilisent tous le même mot de passe, afin que l'utilisateur puisse les visualiser après avoir saisi le mot de passe une fois.
Le problème: J'ai besoin que la session expire au bout d'une heure. J'ai essayé d'utiliser ce code dans mon fichier functions.php.
add_action( 'wp', 'post_pw_sess_expire' );
function post_pw_sess_expire() {
if ( isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) )
// Setting a time of 0 in setcookie() forces the cookie to expire with the session
setcookie('wp-postpass_' . COOKIEHASH, '', 0, COOKIEPATH);
}
Le cache est effacé avec succès, mais je voudrais prolonger le délai plutôt que d’expirer immédiatement. Toute aide serait grandement appréciée!
La raison est quand vous exécutez ce code
setcookie('wp-postpass_' . COOKIEHASH, '', 0, COOKIEPATH);
Il réinitialisera votre cookie de mot de passe post à blanc '', il ne fonctionnera donc qu'une fois. Pour résoudre ce problème, vous devez attribuer le cookie d'origine et prolonger le délai d'attente, comme ceci
setcookie('wp-postpass_' . COOKIEHASH, $_COOKIE['wp-postpass_' . COOKIEHASH], time() + 60 * 5, COOKIEPATH);
J'espère que cette aide
Il vous suffit de vous accrocher au filtre comme ceci et de remplacer 0
par un calcul de temps, tel que time() + 60
function set_cookie_expire () {
echo 0;
}
add_filter('post_password_expires', 'set_cookie_expire');