wake-up-neo.com

Festlegen des Sitzungszeitlimits für kennwortgeschützte Posts

Ich habe eine Reihe von Posts und Seiten mit der integrierten Sichtbarkeitseinstellung kennwortgeschützt auf meiner Website erstellt. Sie verwenden alle dasselbe Kennwort, sodass der Benutzer sie alle nach einmaliger Eingabe des Kennworts anzeigen kann.

Das Problem: Ich brauche die Sitzung nach einer Stunde Zeitüberschreitung. Ich habe versucht, diesen Code in meiner functions.php-Datei zu verwenden.

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);
}

Der Cache wird erfolgreich geleert, aber ich möchte die Zeit verlängern, anstatt die Sitzung sofort ablaufen zu lassen. Jede Hilfe wäre sehr dankbar!

3
Susan

Der Grund ist, wenn Sie diesen Code ausführen

setcookie('wp-postpass_' . COOKIEHASH, '', 0, COOKIEPATH);

Es wird Ihr Post-Passwort-Cookie auf '' zurückgesetzt, so dass es nur einmal funktioniert. Um dies zu lösen, müssen Sie das ursprüngliche Cookie zuweisen und das Timeout verlängern

setcookie('wp-postpass_' . COOKIEHASH, $_COOKIE['wp-postpass_' . COOKIEHASH], time() + 60 * 5, COOKIEPATH);

Ich hoffe das hilft

3
Phan Chuong

Sie müssen sich nur wie folgt in den Filter einhängen und 0 durch eine Zeitberechnung ersetzen, wie time() + 60

function set_cookie_expire () {
    echo 0;
}
add_filter('post_password_expires', 'set_cookie_expire');
2
daerentis