Wordpress Password Protect Archive и отдельные сообщения для пользовательского типа сообщений

Есть ли простой способ защитить паролем архив и отдельные сообщения произвольного типа?

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

https://wordpress.stackexchange.com/questions/4952/forcing-all-posts-associated-with-a-custom-post-type-to-be-private

Спасибо,


person christian    schedule 10.10.2012    source источник


Ответы (2)


Для отдельных страниц вы можете просто отредактировать single.php и добавить что-то вроде:

<?php

if ( is_user_logged_in() ) {
  // Show Post to Logged in User
} 
else {
  //Show password field
}

?>

Если, как вы упомянули, вы используете пользовательский тип записи или шаблон архива, вы можете применить тот же метод, что и выше, к single-[custom-post-type-name].php или archive.php.

person MÖRK    schedule 17.05.2014

Единственный найденный мной способ быстро защитить архив паролем — это создать шаблон, который извлекает данные пользовательского типа записи и связывает его со страницей, которую можно защитить паролем. http://codex.wordpress.org/Page_Templates

Как только эта страница защищена паролем, вы найдете идентификатор сообщения, чтобы применить его к файлу single-{your_custom_post_type}.php следующим образом:

<?php
if ( !post_password_required('{protected_post_id}') ) : ?>

//protected content here

<?php else:
    //show the password form of the protected page
    echo get_the_password_form('{protected_post_id}');                 

endif; ?>

Это избавляет вас от необходимости защищать паролем каждую публикацию вашего пользовательского типа.

person leese    schedule 18.11.2014