• Есть 3 раздела (категории записей, заполненные записями, категории записей иногда пересекаются) и 3 пользователя на сайте.
    Например
    запись 1 принадлежит категории A и B.
    запись 2 принадлежит категории B.
    запись 3 принадлежит категории С.

    запись N (возможно) принадлежит категории A,B,С.

    Каждый пользователь на сайте имеет право поиска только в своей категории (важно — речь не о том что он видит на главной или заходя в разделы, а именно про использование штатной функции поиска).

    Соответственно, дано: Пользователь 1 должен искать только в кат. А, 2й — в B, 3й только в С. Если запись в не разрешенной категории — она не участвует в результатах.

    Вопрос: как реализовать (желательно пример кода).

    • Тема изменена 8 лет, 3 месяца назад пользователем ☭Gu.
Просмотр 1 ответа (всего 1)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Так?

    
    function search_filter($query) {
      if ( !is_admin() && $query->is_main_query() ) {
        if ($query->is_search) {
          switch(get_current_user_id()) {
              case 1:
                  $query->set( 'cat', '4' );
                  break;
              case 2:
                  $query->set( 'cat', '6' );
                  break;
          }
          
        }
      }
    }
    
    add_action('pre_get_posts','search_filter');
    
Просмотр 1 ответа (всего 1)
  • Тема «Исключения поиска для опр.юзера» закрыта для новых ответов.