Crie uma página do WordPress protegida por USERNAME e PASSWORD

4

Eu tenho que criar uma página privada, que será visível apenas para usuários que tenham um nome de usuário e senha.

Consegui criar uma página protegida por nome de usuário e senha, agora os usuários são assinantes, portanto, por padrão, eles não podem ver a página privada. Existe uma maneira de tornar a página privada visível para os inscritos?

Obrigado,

    
por Neha Patel 20.03.2018 / 18:27

1 resposta

4

Que tal considerar um modelo específico que testa para ver se o usuário está logado usando algo como:

if ( is_user_logged_in() ) {
   // your code for logged in user 
  } else {
    // your code for logged out user (e.g. a "you must be logged in" message)
  }

Você pode adicionar um campo personalizado usado para indicar que a página em questão é particular para usuários conectados e, em seguida, em seu teste de modelo page.php para a presença desse valor de campo antes de determinar qual página template para usar .... Eu faço algo semelhante a isto para páginas que requerem que usuários estejam logados e ele funciona muito bem.

Isso também elimina a necessidade de você fornecer uma senha a qualquer um para ver uma página - eles simplesmente precisam estar logados usando suas próprias credenciais.

ATUALIZAÇÃO: Eu pensei em expandir minha resposta para ajudar pessoas que talvez não estejam familiarizadas com a restrição de conteúdo usando campos e modelos personalizados. Então, aqui está o que eu faço:

  1. Eu uso o incrível plugin "Advanced Custom Fields" (a versão pro vale o custo, mas o plugin gratuito funciona bem para este propósito). enlace

  2. Nas configurações do plug-in do ACF, eu crio um campo personalizado que é uma caixa de seleção com o rótulo "Restrito?" e aplique-o a todas as páginas. Assim, quando estou criando ou editando qualquer página, posso marcar a caixa se quiser restringi-la a usuários logados

  3. Eu modifiquei meu arquivo de modelo page.php stock que veio com meu Theme para adicionar uma verificação para este campo (ele contém um valor ou não, por exemplo, ele está marcado), se a resposta for sim, eu chamo o modelo restrito de página de conteúdo, se a resposta for não, então ele usa o modelo de página de conteúdo normal - aqui está meu código:

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); $restrict = get_field('restricted'); if($restrict) { get_template_part( 'content', 'page-restricted' ); } else { get_template_part( 'content', 'page' ); } endwhile; endif; ?>

  4. Eu copiei o template content-page.php para um novo template chamado content-page-restricted.php, que eu modifiquei para adicionar um cheque para ver se o usuário está logado - se não, então eu exibo um mensagem para entrar ou se inscrever com um link para a nossa página de inscrição, se eles estão logados, então eles conseguem ver o conteúdo. Aqui está o meu código para isso:

    <?php if ( !is_user_logged_in() ) { echo'<div id="signupMssg">Please <a class="fancybox-inline" href="#fancyboxID-2">Login</a> or <a href="../Signup">Sign Up</a>'; echo '<div style="display:none;"><div id="fancyboxID-2">'; echo do_shortcode('[displayLogin]'); echo '</div></div></div>'; } else if ( is_user_logged_in() ) { // Follow the normal Page stuff here ?>

O material do fancybox está lá porque eu exibo o formulário de login em uma sobreposição pop-up se eles clicarem na palavra "Login".

Espero que isso ajude, acho que é uma maneira simples de restringir o conteúdo que funciona melhor do que usar páginas "Particulares" que exigem uma senha comum ....

    
por Trisha 20.03.2018 / 21:35