I'm trying to override the Protected Posts form with my own HTML. A new hook was added in 2.7 to supposedly allow this. However, I think it might be a little broken, or I'm misunderstanding how it works.
I've created a new function in my functions.php:
function get_the_password_form_new() {
global $post;
$label = 'pwbox-'.(empty($post->ID) ? rand() : $post->ID);
$output = '<form class="inlinepassword" action="' . get_option('siteurl') . '/wp-pass.php" method="post">
<fieldset><legend>Password protection</legend>
<p>' . __("This Job Description is password protected. To view it please enter your password below:") . '</p>
<label for="' . $label . '">' . __("Password:") . '</label>
<input name="post_password" id="' . $label . '" type="password" size="20" />
<button type="submit" id="submit">OK</button>
</fieldset></form>';
return $output;
}
add_filter('the_password_form','get_the_password_form_new');
As you can see, I've changed the HTML from the original function (in wp-includes\post-template.php). However, the resulting HTML that's generated from my new function has a bunch of extra elements that I didn't specify, and they are in a very odd order! This is what gets generated:
<form class="inlinepassword" action="http://local.natsel/wp/wp-pass.php" method="post">
<fieldset><legend>Password protection</legend></p>
<p>This Job Description is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-16">Password:</label></p>
<input name="post_password" id="pwbox-16" type="password" size="20" />
<button type="submit" id="submit">OK</button><br />
</fieldset></form>
As you can see, there is an incorrect closing P tag that's been introduced after my Legend. There is a new P element created around the label which I don't want, and a BR element after the button.
Where are these extra elements coming from? Why is one of them not constructed properly?
Any tips would be appreciated.