Вот простое требование. Заходишь на сайт как гость и видишь сообщение типа "авторизуйтесь для просмотра записей", войдя на сайта видны все существующие записи в блога. У знакомого другая cms и там такое требование выполняется легко. А вот на wordpress найти не могу. Только закрытие на пароль, где заголовок записей виден. Или же полностью закрытый сайт что видна страница входа только. Такие варианты не подходят. Да и зачем так недоскрывать запись, чтобы был виден ее заголовок а дальше уведомление, что запись на пароле?
Потому вопрос, как можно реализовать скрытие записей от неавторизованных юзеров? при помощи плагина или кода. возможность еще скрыть одну из категорий записей от неавторизованных.
https://ru.wordpress.org/plugins/blog-post-filter/ в этот плагин удалось реализовать то что нужно, но в нем есть нюанс. записи не скрываются в archive.php странице а только на home page.
function filterCategories($query) {
if ( !is_user_logged_in() ) {
if ($query->is_main_query() && is_home()) {
$categoryList = array();
$allowed = get_option('blogPostFilterCategories');
foreach($allowed as $id=>$status)
if($status==1){
$categoryList[] = $id;
}
$query->set('cat', implode(',', $categoryList));
}
}
}
Вы можете использовать действие template_redirect для перенаправления конкретных пользователей на основе ваших условий. Этот крюк действия выполняется непосредственно перед тем, как WordPress определяет, какую страницу шаблона загружать. Это хороший крючок для использования, если вам нужно сделать переадресацию с полным знанием содержимого, которое было запрошено.
Вы можете использовать функцию is_page, чтобы проверить погоду, что текущая страница находится в вашем списке страниц или нет.
add_action( 'template_redirect', 'redirect_to_specific_page' );
function redirect_to_specific_page() {
if ( is_page('slug') && ! is_user_logged_in() ) {
wp_redirect( 'http://www.example.dev/your-page/', 301 );
exit;
}
}
Или вместо редиректа вывести надпись что данный блок будет доступен после авторизации.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей