Wenn Beiträge passwortgeschützt sind, erhält man in der Regel folgendes Formular zur Passworteingabe:

Standardformular zur Passworteingabe

Dieses Eingabeformular kann man natürlich seinen individuellen Bedürfnissen anpassen. Ausgangsbasis ist dabei die Datei comments.php des “default_de”-Theme sowie die Datei post-template.php im Verzeichnis wp-includes.

Bevor Ihr aber die Dateien bearbeitet, erstellt Euch unbedingt Sicherungskopien, falls etwas schiefgehen sollte!

Zunächst sucht Ihr Euch in der comments.php folgende Zeilen:

if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?>

und

<p class="nocomments">Auch die Kommentare sind durch das Passwort geschützt.</p>

Zwischen diesen beiden Zeilen könnt Ihr nun Euer eigenes Formular einbauen. Als Beispiel sei hier mal mein Quellcode angeführt:

  1. if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?>
  2.  
  3. <p>Auch Kommentare sind durch ein Passwort geschützt. Wenn Du sie lesen möchtest, gebe bitte das Kennwort ein.</p>
  4. <form action="<?php echo get_option('siteurl'); ?>/wp-pass.php" method="post" id="commentform2">
  5. <fieldset>
  6. <legend title="Bitte gebe das Kennwort ein">Bitte gebe das Kennwort ein</legend>
  7. <label for="post_password" id="passwort_pflicht2" title="Bitte gebe das Kennwort ein, wenn Du diesen Beitrag bzw. Kommentar lesen möchtest!">Passwort (erforderlich)</label><br />
  8. <input type="password" class="textbox" id="passwort2" name="post_password" size="20" tabindex="1" title="Bitte gebe das Kennwort ein, wenn Du diesen Beitrag bzw. Kommentar lesen möchtest!" />
  9. </fieldset>
  10.  
  11. <fieldset>
  12. <legend title="Sende das Kennwort ab oder lösche es.">+/–</legend>
  13. <input name="Submit" type="submit" value="Kennwort senden" id="send_button2" tabindex="2" title="Kennwort senden" />
  14. <input name="Reset" type="reset" value="Kennwort löschen" id="reset_button2" tabindex="3" title="Kennwort löschen" />
  15. </fieldset>
  16. </form>
  17.  
  18. <!--<p class="nocomments"><?php _e("Dieser Kommentar ist durch ein Passwort geschützt. Bitte das Kennwort eingeben, um die Kommentare anzusehen."); ?><p>-->
  19.  

Die Datei: comments.php

Damit wäre der erste Teil abgeschlossen.

Leider wirkt sich die oben beschriebene Codeänderung noch nicht auf das Eingabeformular aus. Dazu muss nun die Datei post-template.php bearbeitet werden.

Am Ende dieser Datei findet Ihr folgenden Code:

  1. function get_the_password_form() {
  2. $output = '<form action="' . get_option('siteurl') . '/wp-pass.php" method="post">
    <p>' . __("This post is password protected. To view it please enter your password below:") . '</p>
    <p><label>' . __("Password:") . ' <input name="post_password" type="password" size="20" /></label><input type="submit" name="Submit" value="' . __("Submit") . '" /></p>
    </form>
  3. ';
  4. return $output;
  5. }
  6.  

Die Datei: post-template.php (vorher)

In diesen Eintrag müsst Ihr dann Eurer eigenes Formular unterbringen. Hier ist ein wenig Fingerspitzengefühl erforderlich. Auch hier als Beispiel mein eigener Quellcode.

  1. function get_the_password_form() {
  2. $output = '<p>' . _("Dieser Beitrag ist durch ein Passwort geschützt. Wenn Du ihn lesen möchtest, gebe bitte das Kennwort ein.") . '</p><form action="' . get_option('siteurl') . '/wp-pass.php" method="post" id="commentform"><fieldset><legend title="Bitte gebe das Kennwort ein">' . _("Bitte gebe das Kennwort ein") . '</legend><label for="post_password" id="passwort_pflicht" title="Bitte gebe das Kennwort ein, wenn Du diesen Beitrag bzw. Kommentar lesen möchtest!">' . _("Passwort (erforderlich)") . '</label><input type="password" class="textbox" id="passwort" name="post_password" size="20" tabindex="1" title="Bitte gebe das Kennwort ein, wenn Du diesen Beitrag bzw. Kommentar lesen möchtest!" /></fieldset><fieldset><legend title="Sende das Kennwort ab oder lösche es.">' . _("+/–") . '</legend><input name="Submit" type="submit" value="' . __("Kennwort senden") . '" id="send_button" tabindex="2" title="Kennwort senden" /><input name="Reset" type="reset" value="' . __("Kennwort löschen") . '" id="reset_button" tabindex="3" title="Kennwort löschen" /></fieldset></form>
  3. ';
  4. return $output;
  5. }
  6.  

Die Datei: post-template.php (danach)

Wenn alles korrekt eingetragen wurde, sollte das Eingabeformular in etwa so aussehen:

Individuell gestaltetes Formular zur Passworteingabe

Mit CSS könnt Ihr dem Formular ein unverkennbares Aussehen verpassen. Achtet bitte abschließend auf validen Code.

Bleibt mir nur noch viel Spaß und viel Vergnügen zu wünschen.