Как исключить материалы из поиска Joomla
Неотъемлемой частью сайта является поиск. Поиск позволяет посетителям сайта находить необходимую им информацию в разы быстрее. Но иногда необходимо исключить некоторое содержимое из результатов поиска. В данной статье поговорим о том, как исключить материалы из поиска Joomla.
Как это работает?
К сожалению, разработчики не предусмотрели возможность исключения отдельных статей и категорий из результатов поиска, потому предлагаю небольшой фикс плагина поиска. Исключать мы будем не сами материалы, а категории, т.к. это будет проще при дальнейшем наполнении сайта.
Способ тестировался на Joomla версии 3 и выше. Но должно работать и на более ранних версиях.
Откройте файл /plugins/search/content/content.php и найдите блок поиска по материалам:
// Search articles.
if ($sContent && $limit > 0)
Несколькими строками ниже Вы увидите запрос в базу данных на выборку материалов:
$query->select('a.title AS title, a.metadesc, a.metakey, a.created AS created, a.language, a.catid, a.introtext AS description')
Для того, чтобы исключить выборку материалов из определенных категорий необходимо после последнего условия ->where() и перед сортировкой ->group() добавить своё условие:
->where('a.catid NOT IN(2, 3, 4)')
2, 3, 4 — id категорий, в которых запрещаем производить поиск. Укажите свои id через запятую, а потом произведите поиск, чтобы убедиться, что материалы из указанных категорий не попадают в результаты поиска.
Если Вам нужно исключить именно конкретные материалы, без категорий, тогда добавьте следующее условие:
->where('a.id NOT IN(21, 35, 49)')
21, 35, 49 — id материалов, которые необходимо исключить из результатов поиска.
Важно: учитывая, что мы произвели правку плагина, помните, что после обновления CMS Joomla произведенные изменения могут пропасть и их придется вносить заново.
Комментарии
Здесь еще никто не оставлял комментарии.