Modifier la phrase en anglais des pages protégées par mot de passe

Lorsque vous mettez certaines pages de votre site en page protégé par mot de passe, vous avez le droit à une charmante phrase en anglais qui vous le spécifie lors de l’accès à celle-ci : “This post is password protected. To view it please enter your password below:”

2015-05-18 21-24-48_Cournonsec - Agence Locale de l'Energie

Pour retirer celle-ci et la personnaliser, vous pouvez ajouter le code suivante dans votre fichier functions.php :

function my_password_form() {
  global $post;
  $label = 'pwbox-'.(empty($post->ID) ? rand() : $post->ID);
  $output = '
<div class="password-form">
  
' . __('Cette page est protégée par mot de passe, merci de le saisir.') . '
  <form action="' . get_option('siteurl') . '/wp-pass.php" method="post">
  
<label for="' . $label . '">' . __('Password:') . ' </label> <input name="post_password" id="' . $label . '" type="password" size="20" /> <input type="submit" name="Submit" value="' . esc_attr__('Submit') . '" />
</form></div>
';
  return $output;
}
add_filter('the_password_form','my_password_form');

Et voici le résultat après ajout de celui-ci :

2015-05-18 21-26-47_Cournonsec - Agence Locale de l'Energie

 

ATTENTION !

Si après cette manipulation, vous tombez sur une page 404 après avoir rentré votre mot de passe, vous devez avoir un souci avec votre théme. En effet, depuis la version 3.4 de WordPress la protection par mot de passe a changé, au lieu d’utiliser le fichier wp-pass.php il utilise maintenant la construction dans la page wp-login.php avec un attribut d’action. Le fichier wp-pass.php a été supprimé et ne sera plus livré avec WordPress.

Pour cela, vous devez donc mettre le code suivant à la place du précédent :

function my_password_form() {
  global $post;
  $label = 'pwbox-'.(empty($post->ID) ? rand() : $post->ID);
  $output = '
<div class="password-form">
  
' . __('Cette page est protégée par mot de passe, merci de le saisir.') . '
  <form action="' . get_option('siteurl') . '/wp-login.php?action=postpass" method="post">
  
<label for="' . $label . '">' . __('Password:') . ' </label> <input name="post_password" id="' . $label . '" type="password" size="20" /> <input type="submit" name="Submit" value="' . esc_attr__('Submit') . '" />
</form></div>
';
  return $output;
}
add_filter('the_password_form','my_password_form');