Как исключить материалы из поиска 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 произведенные изменения могут пропасть и их придется вносить заново.

Комментарии

Здесь еще никто не оставлял комментарии.

Добавить комментарий