Proteger con Contraseña una Página Personalizada

9 sept 2012, 03:01:19
Vistas: 20.7K
Votos: 11

Intento proteger con contraseña mi página personalizada de manera que antes de mostrar cualquier contenido, el usuario deba ingresar una contraseña. Más específicamente, en mi código siguiente, cualquier cosa dentro del contenedor content-div debería estar protegido con contraseña:

<?php
/*
Template Name: custom_page
*/
?>

<?php get_header(); ?>
<div id="content">

  <div id="main">


<ul class="post">
        <li><b>ÚLTIMAS ENTRADAS</li>
 <?php
    $args = array('category' => 5, 'post_type' =>  'post');
    $postslist = get_posts( $args );    
    foreach ($postslist as $post) :  setup_postdata($post); 
    ?> 
    <li id="post-<?php the_ID(); ?>">
      <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 
    <?php the_excerpt(); ?>
    </li>
    <?php endforeach; ?>

</ul> 

</div><!-- fin del contenido -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Intenté usar el enfoque explicado aquí

Proteger una página con contraseña

pero no puedo hacer que funcione, ya que no sé cómo envolver mi código PHP en la solución sugerida.

3
Comentarios

Por favor muestra cómo lo intentaste, no lo que necesitas que hagamos (no conocemos los detalles).

kaiser kaiser
5 oct 2012 13:55:22

Prueba con la condición if(is_user_logged_in()) { } para esto o redirige a la página de inicio de sesión si no está conectado.

Vikas Gautam Vikas Gautam
17 sept 2013 15:24:03

Proteger con contraseña publicaciones/páginas: Esto viene incorporado en WordPress. Solo coloca una contraseña al crear la publicación o página. Mira en la esquina superior derecha en Editar Página o Editar Publicación > visibilidad > elige Proteger con contraseña. Para más información, revisa este codex: http://codex.wordpress.org/Using_Password_Protection

Tara Tara
21 oct 2013 03:04:33
Todas las respuestas a la pregunta 2
0
20

Cuando seleccionas la opción de protección con contraseña en el back-end de la página, por defecto solo funciona para el contenido, es decir, the_content().

Pero si quieres proteger con contraseña toda la página o tener una plantilla personalizada, necesitas usar la siguiente estructura.

<?php
global $post;
get_header();

if ( ! post_password_required( $post ) ) {
      // Tu código personalizado debe ir aquí
}else{
    // mostramos el formulario de contraseña aquí
    echo get_the_password_form();
}

?>

Prueba usando esta estructura

7 may 2014 15:02:48
3
-1

Te recomendaría usar el Plugin de Membresía; permite que usuarios de un determinado tipo accedan a áreas protegidas específicas.

WordPress › Membership « Plugins de WordPress

Esto se puede aplicar a secciones específicas de una página.

9 sept 2012 03:21:18
Comentarios

Esta respuesta no tiene nada que ver con post-password.

gurung gurung
15 jun 2014 08:49:34

Si revisaras las características del plugin Membership, verías que hace que las páginas y secciones protegidas con contraseña sean muy fáciles de implementar según los usuarios y grupos de usuarios.

Douglas.Sesar Douglas.Sesar
16 jun 2014 18:04:05

Yo uso este plugin para resolver el problema planteado en la pregunta casi exactamente. Estoy seguro de que sería útil para alguien, que es mi intención al publicar la respuesta.

Douglas.Sesar Douglas.Sesar
16 jun 2014 18:05:48