WordPress passwortgeschützte Inhalte mit Timeout versehen

Ich schätze mich glücklich, einige Monate nach der Anmeldung einen der eher raren, kostenlosen Accounts bei php-friends ergattern zu haben.
Mein Entschluss ist, dort nur private und geschützte Beiträge für einen  handverlesenen Nutzerkreis einzupflegen. Seiten und Artikel werden demnach mit Passwörtern versehen. Allerdings hat diese Sicherungsmethode einen erheblichen Nachteil: Solange der von WordPress im Browser gespeicherte Cookie aktiv ist, er also nicht etwa durch das Schließen des Browsers oder durch andere Mechanismen deaktiviert wurde, kann der geschützte Inhalt erneut ohne weiteres aufgerufen werden, was z. B. an öffentlichen Rechnern durchaus heikel werden könnte.
Bereits 2005 hatte man bei FreeMoby zwei Plugins zu einer Lösung vereint: Cookie Timeout und wp-pass. Da die Datei wp-pass.php aber in der aktuellen WP-Installation fehlt, kann sie auch nicht mehr gegen die angebotene ausgewechselt werden.
Im WordPress Forum bin ich nun auf eine weitere, funktionierende Lösung gestoßen, wobei fr2632 eingangs fragt, ob es denn sein kann, dass WordPress kein Timeout für passwortgeschützte Seiten anbietet:

Is it possible that wordpress DOES NOT have a timeout on protected pages??

Wie er konnte auch ich weder eine in WordPress integrierte noch eine pluginbasierte Lösung eruieren (jedenfalls keine, die sich auch auf passwortgeschütze Bereiche bezieht).

Man lade also die functions.php des aktivierten Themes herunter, füge folgenden Code ein

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

und lade die Datei wieder hoch.

Künftig muss das Passwort nochmals eingegeben werden, sobald man den Inhalt nach dem Verlassen der Seite erneut aufrufen möchte. Nachteil: Beim Update oder Wechsel des Themes muss die functions.php wiederum bearbeitet werden.

5 comments on WordPress passwortgeschützte Inhalte mit Timeout versehen

  1. Genau DAS habe ich gesucht.Es hat einen Tag gedauert und ich musste viele *.phps durchforsten bis ich das richtige für mein WP-Theme und meine WP-Version gefunden hatte. Und mit dem code in functions.php fluppt es jetzt endlich!
    DANKE!!!!

  2. Was mich jetzt noch interessieren würde:
    Ich habe zur besseren mobilen Ansicht das wp-touch-plugin eingerichtet,dafür funktioniert der Code nicht.Wo muss ich den eingeben um auch übers smartphone den gewünschten Effekt zu haben?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.