Защита паролем пользовательской страницы

9 сент. 2012 г., 03:01:19
Просмотры: 20.7K
Голосов: 11

Я пытаюсь защитить паролем мою пользовательскую страницу так, чтобы перед отображением любого контента пользователь должен был ввести пароль. Если точнее, в моем коде ниже, всё внутри div-контейнера content должно быть защищено паролем:

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

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

  <div id="main">


<ul class="post">
        <li><b>ПОСЛЕДНИЕ ЗАПИСИ</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><!-- конец content -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Я пытался использовать подход, описанный здесь

Защита страницы паролем

но не могу заставить его работать, так как не знаю, как обернуть мой PHP-код в предложенное решение.

3
Комментарии

Пожалуйста, покажите как вы пробовали, а не то, что вам нужно получить в итоге (мы не знаем всех деталей).

kaiser kaiser
5 окт. 2012 г. 13:55:22

Попробуйте условие if(is_user_logged_in()) { } для этого или перенаправьте на страницу входа, если пользователь не авторизован.

Vikas Gautam Vikas Gautam
17 сент. 2013 г. 15:24:03

Защита записи/страницы паролем: Это встроенная функция WordPress. Просто укажите пароль при создании записи или страницы. Посмотрите в правом верхнем углу при Редактировании Страницы или Записи > Видимость > выберите Защитить паролем. Для получения дополнительной информации изучите этот кодекс: http://codex.wordpress.org/Using_Password_Protection

Tara Tara
21 окт. 2013 г. 03:04:33
Все ответы на вопрос 2
0
20

Когда вы выбираете опцию защиты паролем в бэкэнде страницы, по умолчанию она применяется только к контенту, т.е. к the_content().

Но если вы хотите защитить паролем всю страницу или используете пользовательский шаблон, вам понадобится следующая структура.

<?php
global $post;
get_header();

if ( ! post_password_required( $post ) ) {
      // Ваш пользовательский код должен быть здесь
}else{
    // здесь мы покажем форму ввода пароля
    echo get_the_password_form();
}

?>

Попробуйте использовать эту структуру

7 мая 2014 г. 15:02:48
3
-1

Я бы рекомендовал использовать плагин Membership; он позволяет пользователям определённого типа получать доступ к заданным защищённым зонам.

WordPress › Membership « Плагины WordPress

Это можно применить к определённым разделам на странице.

9 сент. 2012 г. 03:21:18
Комментарии

Этот ответ не имеет никакого отношения к post-password.

gurung gurung
15 июн. 2014 г. 08:49:34

Если бы вы посмотрели на функции плагина Membership, то увидели бы, что он делает защищенные паролем страницы и разделы очень простыми в реализации на основе пользователей и групп пользователей.

Douglas.Sesar Douglas.Sesar
16 июн. 2014 г. 18:04:05

Я использую этот плагин для решения проблемы, поставленной в вопросе, почти в точности. Уверен, это было бы полезно для кого-то, и именно с этой целью я публикую данный ответ.

Douglas.Sesar Douglas.Sesar
16 июн. 2014 г. 18:05:48