Oi @birobas,
Você pode usar o seguinte código no functions.php ou em um plugin para que a senha funcione somente durante a sessão do usuário, isto é, para que ela dure enquanto o navegador estiver aberto:
function wpbr_78253_post_password_expires() {
return 0;
}
add_filter( 'post_password_expires', 'wpbr_78253_post_password_expires' );
Se você quiser que a página seja exibida uma única vez, isto é, que o usuário precise digitar a senha novamente a cada vez que recarregar a página, use isto aqui:
function wpbr_78253_post_password_expires() {
setcookie( 'wp-expire_postpass', 1, 0, COOKIEPATH );
return 0;
}
add_filter( 'post_password_expires', 'wpbr_78253_post_password_expires' );
function wpbr_78253_init() {
if ( 1 == $_COOKIE['wp-expire_postpass'] ) {
setcookie( 'wp-postpass_' . COOKIEHASH, '', 0, COOKIEPATH );
}
}
add_action( 'init', 'wpbr_78253_init' );
Testei aqui e funcionou direitinho. Você vai precisar limpar o cache do seu navegador para testar, ok?
Não esqueça de voltar em caso de dúvida ou, se for o caso, para marcar seu tópico como resolvido.
Bom dia Felipe.
Inclui o código no arquivo functions. Porem meu site saiu fora do ar, tem algum lugar especifico onde colocar o codigo no arquivo?
Atenciosamente
Oi @thomazlucas,
Qual código você incluiu e o que aconteceu com o seu site? Tela branca?
o segundo, o que faz com que o usuário precise digitar a senha novamente a cada vez que recarregar a página.
Aparece:
Esta página não está funcionando
HTTP ERROR 500
Você vai precisar saber o que está causando esse erro 500, para isso dê uma olhada nesta página da documentação.
Para imprimir na tela você pode tentar usar o seguinte código no seu wp-config.php (logo no começo)
define('WP_DEBUG', true);
define('WP_DEBUG_DISPLAY', true);
@ini_set('display_errors',1);
pra mim apareceu isso aqui:
Notice: Use of undefined constant REQUEST_URI – assumed ‘REQUEST_URI’ in /home/ihomeinc/public_html/wp-content/themes/composer-child/functions.php on line 73
Isso é só um Notice
, que não deveria afetar o funcionamento do seu site.
Você só acrescentou o segundo bloco de código ali em cima e deu esse erro 500? Tirando o código funciona normalmente?
exatamente, ai eu tiro o código ele volta ao normal.
Entendi… resolve esse Notice aí e tenta ver se o erro vai mudando até se referir a esse trecho mesmo, é o jeito.
Olá @felipeelia, @thomazlucas,
Eu resolvi esse problema da seguinte forma, eu criei um arquivo onde eu verifico a senha chamado senha.php
e coloquei o seguinte código:
<?php
$Senha = '123'; // aqui tu coloca a senha que deseja
if(isset($_POST['entra'])) {
extract($_POST);
if($senha=="$Senha") {
echo "<script>
location.href='http://seusite.com.br/pagina/'; // Aqui e página para onde será direcionado o usuário
</script>";
} else {
echo "<script>
alert('Dados inválidos');
location.href='?';
</script>";
}
}
?>
<form method="POST" action="">
<p><input name="senha" type="password"></p>
<p><input value="Entrar" type="submit" name="entra"></p>
</form>
e chamo esse arquivo em uma página com o <?php include("senha.php"); ?>
e pronto!
Espero ter ajudado!