web-dev-qa-db-fra.com

Verrouillé/Déverrouillé dans le titre

Cela devrait être incroyablement facile, mais il me manque quelque chose. Ce code devrait simplement fonctionner s’ils ont saisi leur mot de passe dans une publication/page protégée par mot de passe. L'idée est de leur rappeler qu'il est protégé.

Cependant ... je ne peux pas le faire fonctionner du tout. L'instruction if ne retourne jamais vrai. Pour une raison quelconque, je ne pense pas que la fonction obtienne $ post.

function unlocked() {
  if(!empty($post->post_password) && !post_password_required()) {
    echo 'unlocked icon reminding them this was protected and they put in their password already';
  }
}
1
Eddie

Votre fonction ne "obtiendra" jamais $post car ce n'est pas ainsi que fonctionnent les fonctions. Les fonctions ne peuvent rien tirer en soi par elles-mêmes. Si vous avez activé le débogage, vous recevrez un avis de bogue définitif qui $post in non défini .....

Vous auriez besoin d'appeler le $post global dans votre fonction pour que tout ce qui fonctionne qui repose sur le $post global fonctionne:

function unlocked() {
  global $post;

  if(!empty($post->post_password) && !post_password_required()) {
    echo 'unlocked icon reminding them this was protected and they put in their password already';
  }
}
3
Pieter Goosen