Задать вопрос
Kianl
@Kianl
Печальный веб-разработчик

Как добавить новый тип записей в WordPress и сделать гибкий фильтр по ним?

В проекте игросайт.
Задумка такая.

Есть два типа записей. Первый тип - обычные статьи (обзоры, новости и т.п.). Второй тип - страница конкретной игры совершенно другой конструкции.

При этом надо чтобы игры, как и статьи, можно было складывать в категории.
Например, "Браузерные" → "Стратегии" → "Правила войны" (страница игры) или "Новости игр" → "WOT закрываются" (страница статьи).

При этом надо еще уметь фильтровать страницы игр по параметрам "Платформа", "Жанр", "Особенности". Подозреваю, что это делается через произвольные поля.

Посоветуйте какой-нибудь информационный источник, что ли.. Или хоть намекните, как приблизительно это реализовывается. С вп дела у меня плохи...

ЗЫ: Сейчас моя иерархия очень дыбильная.
Просто категории и просто одинаковые записи, в которые условно будут выводиться дополнительные блоки. Вместо нормальной фильтрации сразу категории типа "Браузерные онлайн стратегии", статьи и игры выводятся в одной куче, вместо особенностей метки.. Ну в общем хрень полная. Никуда не годится.
  • Вопрос задан
  • 387 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Aligatro
@Aligatro
Turn food and coffee into software...
Новый тип записи через - register_post_type();
Фильтрацию можно мутить через - meta_query
Хотите через произвольные поля - пожалуйста.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
1. Статьи делаются на основе стандартного типа записей 'post'
2. Игры делаются через произвольный тип записи (custom post type) 'game'
3. Чтобы и игры, так же как статьи, можно было складывать в категории:
- если категории нужны те же, что и для статей, то для cpt 'game' дополнительно подключается стандартная таксономия 'post_category'
- если для игр нужны свои уникальные категории, то регистрируется произвольная таксономия 'game_category'
4. Все дополнительные характеристики/свойства игр пропускайте в голове через такой фильтр:
- если набор терминов (значений) в характеристики плюс-минус понятен (например, жанры игр), по нему нужна фильтрация запросов, а также сам термин может иметь дополнительные данные (как минимум, описание) - тогда для этой характеристики подходит произвольная таксономия (в вашем случае - платформа, жанр)
- если значения характеристики могут быть разными, отсутствовать вообще, быть достаточно большим текстом, не нужны для полноценной фильтрации через основной запрос и тд (например, в вашем случае это "особенности") - тогда для этой характеристики подходит произвольное поле (custom field / post_meta)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы