- Вопрос или проблема
- Теория
- Пользовательские типы записей
- Пользовательские таксономии
- Применение
- Резюме
- Ответ или решение
- Таксономическая структура спортивного сайта
- Введение
- Структурирование контента
- 1. Пост-тип (Custom Post Type)
- 2. Таксономии (Custom Taxonomies)
- 3. Пример структуры
- Примеры использование
- Сцена
- Страницы и ссылки
- Заключение
Вопрос или проблема
Мне сложно понять, как структурировать сайт. Сайт представляет собой новостной ресурс для трех различных, но связанных видов спорта: скейтборд, сноуборд и серфинг. Каждый вид спорта имеет обычно атлетов, названия событий, локации, бренды, фотографов, режиссеров и трюки, связанные с ним.
В основном мы публикуем новости об этих спортах через статьи, фотографии и видео, и то, к чему я стремлюсь, это возможность извлекать данные из этих опубликованных материалов и представлять их на страницах, сгруппированных по схожим данным.
Пример: мы написали статью о Тони Хоуке (атлете по скейтборду), который выполнил первый в истории трюк 900 (трюк на скейтборде). Мы хотели бы, чтобы эта статья была размещена на странице, названной “Скейтеры” (атлеты по скейтборду), где все скейтеры перечислены в алфавитном порядке, и у Тони Хоука был бы собственный раздел под категорий “скейтборд”, а та же статья была бы размещена на странице, названной “Трюки” с другими 900 и другими трюками на скейтборде. Но статья не может быть размещена, например, под трюками на сноуборде или серфингом.
Таким образом, я создал 3 пользовательских типа записей для каждого вида спорта, и пользовательские теги для каждого вида спорта для атлетов, названий событий, локаций, брендов, фотографов, режиссеров и трюков, что означает, что существуют, например, 3 различных тега для трюков (трюки на скейтборде, трюки на сноуборде и трюки на серфинге).
Однако я понял, что если я продолжу следовать этой системе, мне понадобятся 3 пользовательских типа записей для галерей изображений, 3 пользовательских типа записей для событий и так далее, что сделает админку довольно неудобной для пользователей.
Альтернатива заключалась бы в том, чтобы установить иерархическую категориальную систему, где, например, скейтборд является родительской категорией, трюк на скейтборде — дочерней категорией, а различные названия трюков были бы категориями внуков. Однако, насколько я понимаю, это создало бы длинный длинный список категорий для выбора в каждой записи.
Лучше было бы, если бы я мог просто установить связь между пользовательскими тегами и дочерними категориями, вместо связи между пользовательскими тегами и пользовательскими типами записей, но я понимаю, что это не для WordPress.
Итак, мой вопрос таков: какая лучшая структура для моего сайта? Есть ли идеи, которые более удобны для пользователей?
Я думаю, вы несколько неправильно истолковали пользовательские типы записей и пользовательские таксономии.
Теория
Пользовательские типы записей
Я считаю, что цель пользовательского типа записи заключается в том, чтобы быть форматом данных, отличным сам по себе — он описывает тип контента, но не сам контент. Возьмем встроенные типы записей page
, post
и attachment
, например:
- Тип записи
page
описывает формат обычной, статической страницы на сайте, которая может быть организована в иерархию с использованием родителей. - Тип записи
post
описывает временной контент, который может быть организован с помощью категорий и тегов, отражающих природу самого контента и, как правило, подчеркивающих общество с комментариями. Записи также публикуются в RSS-лентах для внешнего восприятия посетителями. - Тип записи
attachment
описывает медиафайл, который связан с одним из вышеназванных типов записей.
Не имело бы смысла публиковать контент “О нас” в виде post
(хронология когда контент опубликован не имеет значения, и было бы необычно иметь раздел комментариев на таком статичном контенте), и также не имело бы смысла публиковать новостную статью в виде страницы (важно, когда история была опубликована, и было бы полезно использовать таксономии для описания, какой тип истории это). Ни один из этих контентов разумно нельзя было бы опубликовать в виде attachment
.
Было бы еще страннее создать уникальный тип записи для каждого статического контента (тип записи “О нас”, тип записи “Свяжитесь с нами”, тип записи “Политика конфиденциальности” и т. д.), так как каждый контент мог бы быть описан в идентичном формате.
Любые данные, относящиеся к пользовательскому типу записи, чаще всего хранятся и доступны через Metadata API, который позволяет прикреплять пользовательскую информацию к записям.
Пользовательские таксономии
Таксономия — это всего лишь метод группировки элементов вместе. На практике вы можете использовать таксономии для организации различных видов контента или для отражения определенных аспектов контента — независимо от того, описан ли этот контент с помощью одного и того же типа записи или разных.
Сайт, перечисляющий телешоу и фильмы, может иметь пользовательский тип записи для обоих (так как эпизодическое телешоу описывается иначе, чем описывается фильм), но записи любого из них могут быть классифицированы с использованием одной и той же таксономии genre
(записи или “термины”, которые будут содержать такие вещи, как “научная фантастика”, “ужасы”, “экшн” и т. д.).
Применение
Хоккей, баскетбол и футбол по определению являются видом спорта, и поэтому могут быть описаны в том же формате, что и любой вид спорта (название, набор правил, история и т. д., например). В результате следует, что вам следует создать один пользовательский тип записи sport
и создать три отдельных записи типа sport
, чтобы представить каждый отдельный спорт.
По той же логике это также справедливо, что один тип записи athlete
будет достаточно для охвата участников всех видов спорта, а один тип записи event
будет покрывать любое событие для любого спорта, атлета и т. д.
sport
можно организовать с помощью таксономии, описывающей тип спорта — например, “спортивное зрелище”, “командный спорт”, “соревновательный спорт”, “аматорский спорт”, “водный спорт”, “профессиональный спорт” и т. д. Однако для вашего применения это ненужно.
События организуются (или группируются) по локации, поэтому имеет смысл иметь таксономию location
, которая применяется к типу записи event
. Она могла бы быть иерархической по географии (термины штата или провинции имеют городские термины в качестве детей, например) — позволяя вам запрашивать события по городу или региону — или просто плоским уровнем, как тег.
Как события, так и атлеты могут быть организованы в соответствии с их связанным спортом, поэтому имеет смысл, что кроме пользовательского типа записи sport
, будет создана таксономия sport
(и не применена к пользовательскому типу записи sport
). В качестве альтернативы можно использовать Metadata API для ассоциации элементов с соответствующей записью sports
CPT.
Однако, исходя из вашего описания, похоже, что вас не интересует описание каких-либо видов спорта на вашем сайте — вам не нужны фактические страницы, детализирующие аспекты спорта независимо от людей, мест и событий, связанных с ним. В результате будет логичнее не иметь типа записи sport
вообще, а вместо этого лишь таксономию sport
, позволяющую вам группировать athletes
и events
по соответствующему спорту.
Резюме
Я считаю, что лучший способ организовать ваш контент следующий:
- Пользовательские таксономии
sports
locations
- Пользовательские типы записей
athlete
— использует таксономиюsport
event
— использует таксономииsport
иlocation
Запрос с следующими аргументами возвращает архивную страницу, содержащую всех атлетов, участвующих в футболе:
$args[ 'post_type' ] = 'athlete';
$args[ 'tax_query' ] = array(
'taxonomy' => 'sport',
'terms' => 'football'
);
Этот запрос всегда доступен по URL
/?post_type=athlete&taxonomy=sport&terms=football
Как это трансформируется в красивый постоянный линк, зависит от ваших настроек постоянных ссылок и выбранных вами слагов.
Киберспорт действительно показывает, насколько конкурентным и skillful стал гейминг. Так здорово смотреть, как профессионалы играют на таком уровне eroneous
Ответ или решение
Таксономическая структура спортивного сайта
Введение
С учетом потребностей вашего спортивного новостного сайта, который охватывает три связанных вида спорта — скейтбординг, сноубординг и серфинг — важно правильно организовать контент, чтобы упростить администрирование и улучшить UX (пользовательский опыт"). Данный документ описывает оптимальную таксономическую и структурную схему, которая обеспечит легкий доступ к данным, таким как атлеты, события, места, бренды, фотографы, операторы и трюки, сгруппированным рядом с соответствующими статьями.
Структурирование контента
1. Пост-тип (Custom Post Type)
Для вашего сайта лучше всего использовать следующие типы записей:
-
Athlete (Атлет): Этот пост-тип будет представлять спортсменов всех трех видов спорта. Особенность данного подхода в том, что атлеты могут быть легко классифицированы по таксономии спорта.
-
Event (Событие): Этот пост-тип будет содержать информацию о мероприятиях, связанных с олимпийскими дисциплинами, и также может включать все виды спорта.
-
Media (Медиа): Это может быть специальный пост-тип для изображений и видео, который упростит управление контентом.
2. Таксономии (Custom Taxonomies)
Создание таксономий поможет облегчить навигацию и группировку контента. Вы можете использовать следующие таксономии:
-
Sport (Спорт): Пользовательская таксономия, включающая термины "Скейтбординг", "Сноубординг", "Серфинг". Это позволит фильтровать атлетов и события по виду спорта.
-
Location (Место): Эта таксономия может быть иерархичной (например, страны, города) или плоской и будет служить для организации событий по их местоположению.
-
Trick (Трюк): Пользовательская таксономия для трюков, связанная с каждым видом спорта. Так как в каждом спорте есть свои уникальные трюки, вы можете создать разные термины для каждого из видов спорта.
3. Пример структуры
Ваша структура контента может выглядеть следующим образом:
-
Пост-Типы:
- Athlete
- Event
- Media
-
Таксономии:
- Sport
- Скейтбординг
- Сноубординг
- Серфинг
- Location
- Страна
- Город
- Trick
- Скейтбординг
- 900
- Ollie
- Сноубординг
- Backflip
- Серфинг
- Cutback
Примеры использование
Сцена
Предположим, у вас есть статья о Тони Хоуке, который выполнил первый 900.
- Атрибуты:
- Пост-тип: Athlete (Тони Хоук)
- Таксономия Sport: Скейтбординг
- Таксономия Trick: 900
Страницы и ссылки
Вы можете легко извлекать связанные данные. Например:
- Страница "Скейтбордисты" будет отображать всех спортменов, связанных с таксономией "Спорт", со своим именем и постами о достижениях.
- Страница "Трюки" сгруппирует все трюки, соответственно индицируя на все посты, связанные с конкретным трюком, но только в рамках указанного вида спорта.
Заключение
Объединение пост-типов и таксономий таким образом обеспечит вам возможность эффективно управлять контентом спортивного сайта, предоставляя при этом удобный опыт для пользователей. Описанная структура не только упрощает добавление, редактирование и удаление контента, но и значительно улучшает SEO-оптимизацию вашего ресурса. Вы сможете легко создавать страницы, фильтры и взаимодействия между различными элементами, что обеспечит максимальную гибкость в организации информации.