Wordpress Passwort-Formular anpassen

Wird ein Artikel oder eine Seite in Wordpress mit einem Passwort versehen, erscheint anstelle des Contents ein Hinweis mitsamt Eingabeformular. Leider lässt sich dieses Formular mitsamt Text nicht über ein Template verändern. Veranwortlich für den besagten HTML-Code ist die Funktion the_password_form() bzw. get_the_password_form() in wp-includes/post-template.php.

Den Output direkt in der Funktion anzupassen ist zwar auch möglich, sollte man aber vermeiden, da diese Änderung beim nächsten Wordpress-Update wieder überschrieben wird. Stattdessen wird einfach ein Filter für the_password_form() in der functions.php angelegt, die sich im jeweiligen Template-Ordner befindet. Solltest du die Datei in deinem Template-Ordner nicht vorfinden, kannst du sie einfach erstellen.

In die functions.php wird folgendes eingetragen:

1
2
3
4
5
6
7
8
9
10
11
12
function change_password_form() {
	$output = '<form action="'.get_option('siteurl').'/wp-pass.php" method="post"><fieldset>'."\n"
		.'<p>'.__("This post is password protected. To view it please enter your password below:").'</p>'."\n"
		.'<p>'."\n"
		.'<label for="post_password">Passwort:</label>'."\n"
		.'<input name="post_password" class="input" type="password" size="20" />'."\n"
		.'<input type="submit" name="Submit" class="button" value="'.__("Submit").'" />'."\n"
		.'</p>'."\n"
		.'</fieldset></form>'."\n";
	return $output;
}
add_filter("the_password_form","change_password_form");