Простая, по идее, задача, но что-то я не соображу, как ее реализовать. Требуется: Вывести страницы с определенной меткой, принадлежащие к определенной категории.
Т.е. нам нужно сделать выборку сначала по категории, а затем из выбранного выбрать страницы с требуемой меткой.
Стандартные возможности mso_get_pages() позволяют нам либо вывести страницы категорий (без учета меток в выборке), либо страницы меток (без учета категорий в выборке). А нужно, чтобы учитывались оба параметра, и принадлежность страниц к категории, и наличие у страниц метки.
Как лучше реализовать на практике?
4 3270
Еще записи по теме
- Как реализовать запрет индексации отдельной категории сайта для Роскомнадзора?
- Как настроить вывод info-top для определённой рубрики или типа записи?
- Проблема: RSS в записях в "будущем" не отображается.
- Как скрыть контент от незарегистрированных пользователей?
- Можно ли выключить ЧПУ чтобы ссылки были типа id12345?
- Как в рубрике закрепить определенную публикацию?
- Как осуществить переезд с HTTP на HTTPS?
Михаил, думаю, что просто за счёт передачи определённого набора значений параметров в функцию mso_get_pages() не получится сделать выборку.
Посмотрел \application\maxsite\common\page.php (думаю, что ты и сам его видел) и там видно, что при варианте выборки для custom_type = 'category' или custom_type = 'tag' там выполняются специальные процедуры с соответствующими (заточенными под конкретные задачи) запросами к базе.
Если и есть вариант как то объединить запросы, то только если попробовать воспользоваться параметром function_add_custom_sql, который задаёт название специальной функции. Эта функция должна добавлять параметры выборки (т.е. нужна работа с экземпляром $CI).
Собственно, я и реализовал таким образом. Проблема моя была в том, что я ранее ни разу не использовал этот параметр, а рабочих примеров в Сети найти не мог. Методом тыка надыбал искомое.
В моем случае я брал за основу tag, получал таким образом в mso_get_pages() выборку по тегу, а затем с помощью function_add_custom_sql из полученной выборки отбирал уже страницы, относящиеся к той или иной нужной мне рубрике.\
Сама фунцкия такая:
И, соответственно, mso_get_pages() получила вид:
Я использовал в качестве слага для выборки по тегу mso_segment(3), у других это может быть что-то другое.
Михаил, в коде всё выглядит именно так, как я теоретизировал
Потребность явно нестандартная, поэтому примеров особо нет в сети. Но теперь есть
Михаил, спасибо, что поделился наработкой!
Пожалуйста. Думаю, что function_add_custom_sql многим интересна, но далеко не каждый к ней подход может найти. Поэтому свой код с пояснениями привел.