Wenn Beiträge passwortgeschützt sind, erhält man in der Regel folgendes Formular 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:
if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?>
<p>Auch Kommentare sind durch ein Passwort geschützt. Wenn Du sie lesen möchtest, gebe bitte das Kennwort ein.</p>
<form action="<?php echo get_option('siteurl'); ?>/wp-pass.php" method="post" id="commentform2">
<fieldset>
<legend title="Bitte gebe das Kennwort ein">Bitte gebe das Kennwort ein</legend>
<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 />
<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!" />
</fieldset>
<fieldset>
<legend title="Sende das Kennwort ab oder lösche es.">+/–</legend>
<input name="Submit" type="submit" value="Kennwort senden" id="send_button2" tabindex="2" title="Kennwort senden" />
<input name="Reset" type="reset" value="Kennwort löschen" id="reset_button2" tabindex="3" title="Kennwort löschen" />
</fieldset>
</form>
<!--<p class="nocomments"><?php _e("Dieser Kommentar ist durch ein Passwort geschützt. Bitte das Kennwort eingeben, um die Kommentare anzusehen."); ?><p>-->
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:
function get_the_password_form() {
$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>';
return $output;
}
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.
function get_the_password_form() {
$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>
';
return $output;
}
Die Datei: post-template.php (danach)
Wenn alles korrekt eingetragen wurde, sollte das Eingabeformular in etwa so aussehen:
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.
Schreibe einen Kommentar