Функции the_content(),the_title() и еще что-то нужно
-
Есть тестовый сайт с 1 рубрикой (id=1) и 3 записями в ней (id=1..3).
Связанная тема: https://ru.forums.wordpress.org/topic/%d0%a4%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d1%8f-pre_get_posts?replies=9
Что нужно:
Основное. Чтобы гостям сайта нельзя было просмотреть пост, зная его url. Посты на главной не видны (см. связ.тема), но если знать точный url — то пост можно увидеть.
Нашел такое решение:
function gu_hide_post($content){ // Тут некие условия типа if !(Is_User_log_In() or Is_User_Admin)() // - работают {return "Индейская национальная изба";} else {return $content } } // что показываем // как реагируем add_filter('the_title', 'gu_hide_post'); add_filter('the_content', 'gu_hide_post'); add_filter('get_the_excerpt', 'gu_hide_post');
Это работает, но выглядит некрасиво. Меняет заголовок и содержимое.
Есть еще варианты (бесперспективные, типа вмешаться в код темы или теми же ф.ми просто пропускать вывод), но тогда они перестают учитываться при поиске и др. — т.е. ищем запись типа с\на «пост такой-то», показывает 5, а сверху пишет найдено 10.
попытки впихнуть фильтры типа
add_filter('the_post', 'gu_hide_post'); add_filter('get_the_post', 'gu_hide_post');
ясное дело ни к чему не приводят. Больше ничего не нашел 🙁
Что нужно:
1. При входе Гостя — запретить отображение таких постов. В идеале отображать текст вместо записи (чтобы не расходилось с количеством постов в поиске и страницами — с этим столкнулся, если их вывод скрывать).
++ на сколько понимаю при выводе поста (в заголовке см. ф. используется неск. функций? Нет ли одного объекта для обработки — или я не правильно понимаю)?
2. Вышеупомянутыми функциями сейчас это делается, но видно автора, время, рубрики и тп. этого поста, а нет ли какой то одной функции, которая отвечала бы за запись целиком и которую можно было бы прикрутить к функции выше, а-ля:
add_filter(‘get_ALL_post’, ‘gu_hide_post’);
чтобы в любом месте сайта вместо этого поста показывалась возвращаемая функцией строка, для тех, у кого не выполнены условия просмотра.
Надеюсь понятно объяснил. Если нет — пишите, попробую более дотошно.
Еще раз: Нужно чтобы если вошел не авторизованный — увидел Избу в таких постах (авторизован — обычный сайт).Спасибо. Всех с наступившими выходными 🙂
- Тема «Функции the_content(),the_title() и еще что-то нужно» закрыта для новых ответов.