Видимость поста для зарегистрированных
Хочу выводить некоторые посты только для зарегистрированных пользователей. Так чтобы этот пост во всех разделах отображался только для зарегистрированных. Подскажите, готовое решение, только без плагинов.
Думаю что-то в виде рубрики можно создать, в которой все посты будут только для зарегистрированных или переделать видимость личных записей, так чтобы они были видны для всех зарегистрированных. Но как это реализовать не понятно.
Используй Проверку на id usera
Мне тоже это интересно. Хочу, чтоб только зарегистрированные видели данные карты для оплаты заказа. У меня оформлена visa platinum business и надо как-то придумать так, чтоб посторонние не видели адреса карты.
Я для таких целей pre_get_pests юзаю
Создал отдельную таксономию.
Ну а дальше только условие.
https://wp-kama.ru/hook/pre_get_posts
Вам второй пункт подойдёт, только условие поменять и нужный термин или таксономию полставить
Спасибо, что ответили. Вот что получилось. Пост скрывается с главной, поиска и других разделов, но если зайти напрямую по ссылке, то все равно открывает страницу.
вот код взял с примером по регистрации , тут редирект, но можно и подмену шаблона воткнуть.
В условие воткните проверку на категорию, а лишнее удалите
Вот такой вариант вроде бы корректно работает, скрывает пост и заходе по ссылке редирект делает, если не сложно проверьте правильно ли написал, чтобы не было сюрпризов, которые обнаружатся через месяц. А воткнуть подмену шаблона, это делать редирект на заготовленную страницу?
wp_redirect( get_permalink($id страницы) )
может так.
как вариант - сохранять произвольное метаполе для записи, которая только для авторизованных.
Далее в фильтре pre_get_posts проверять - залогинен ли пользователь(https://wp-kama.ru/function/is_user_logged_in) и если нет, то получать массив ID постов, для которых сохранено метаполе, и добавлять его в параметр 'exclude' основного запроса. Имейте в виду, что для этого параметра массив придется преобразовать в строку (склеить запятой или пробелом)
Более удобный и наглядный вариант - добавьте в CMS произвольный статус записи, специально под записи для авторизованных. https://wp-kama.ru/function/register_post_status
В основной цикл с настройками по умолчанию записи с этим статусом попадать не будут, для авторизованных - через pre_get_posts добавляете статус в параметры запроса.
Сложная схема, я бы сделал через post-formats
через мета-поле - согласен. У способа через статус есть свои преимущества
То есть если я публикую пост и у меня есть хуки повешанные на событие публикации,при смене статуса не возникнит ли проблем со всем этим. Извините если что не понял.
если в хуке есть проверка на статус и при несовпадении статуса с publish происходит возврат из функции, то вам придется добавить новый статус в условие