Организация пользовательских таксономий и пользовательских типов сообщений

Я действительно пытаюсь организовать сайт, на котором будет достаточно много контента. Этот пример сокращен, но содержит суть моей проблемы.

На сайте есть несколько клубов.

  • Игровой клуб
  • Клуб жонглирования
  • Танцевальный клуб
  • и т.д…

Каждый клуб должен публиковать новости и события.

Я создал пользовательскую таксономию, называемую клубными и пользовательскими типами сообщений для новостей и событий. Мое мышление заключается в том, что когда кто-то создает событие, они приписывают его своему клубу, используя таксономию.

В идеале мне нужна структура URL, например www.mysite.com/juggling-club/ (которая будет использовать шаблон таксономии для отображения некоторого контента). Затем www.mysite.com/juggling-club/events (в котором перечислены все события, которые проводил клуб).

Кажется, WordPress нуждается в таксономии в URL-адресе ( www.mysite.com/club/juggling-club ), с которым я мог бы жить, но я действительно борюсь с тем, как отображать различные пользовательские типы сообщений, аккуратно основанные на таксономии, и как я могу организовать свои шаблоны.

www.mysite.com/club/juggling-club/?post_type=events фильтрует мой контент, но, проверяя код, он, кажется, просто вызывает шаблон архива типа post post, и он также затрудняет задачу таксономии.

Я пропустил гораздо более простой вариант здесь?

Нужно ли мне много переписывать правила? Если да, как я могу заставить WordPress найти мои шаблоны, чтобы настроить внешний вид определенных разделов?

Спасибо заранее за любую проницательность! С уважением.

Мне кажется, что ваш игровой клуб, Juggling club и т. Д. Являются в основном пользователями. Вы говорите, что им нужно иметь возможность создавать свои собственные сообщения, события и т. Д. …

Таким образом, вы могли бы сделать это так же. Это зависит от того, являются ли они фактическими пользователями из каждого клуба, или если кто-то публикует контент для всего. Во втором случае я, вероятно, буду использовать таксономию, как вы предлагаете.

Я работаю над этим и пришел к решению, которым я доволен. Я надеюсь, что это имеет смысл на уровне WordPress!

Я решил сохранить термин таксономии в URL-адресах, я хочу как можно меньше поработать с поведением WordPress по умолчанию, и URL-адрес все еще отлично читается. (например: http://www.mysite.com/club/juggling-club )

Я использовал правило перезаписи для разрешения запроса var_type var (например: http://www.mysite.com/club/juggling-club/?post_type=events становится http://www.mysite.com/club/juggling-club/events, чтобы перечислять только события на жонглирующий клуб)

function mytest_rewrite_rule() { add_rewrite_rule( 'club/([\-\w+]*)/([\w+]*)/?$', 'index.php?club=$matches[1]&post_type=$matches[2]', 'top' ); } add_action('init', 'mytest_rewrite_rule', 10, 0); 

Чтобы следить за этой структурой, я хотел, чтобы мои пользовательские сообщения имели URL-адрес http://www.mysite.com/club/juggling-club/event/sponsored-juggle . С помощью этой публикации я создал пользовательский термин в моей переписке cpt (club /% club% / event), которая поддерживает мой шаблон url. Для этого WordPress нуждается в некотором коде:

 function mytest_cpt_rewrite( $link, $post ) { if ( $post->post_type === 'events' ) { if ( $terms = get_the_terms( $post->ID, 'club' ) ) $link = str_replace( '%club%', current( $terms )->slug, $link ); } return $link; } add_filter( 'post_type_link', 'mytest_cpt_rewrite', 10, 2 ); 

Итак, я закончил с логической структурой:

http://www.mysite.com/club/juggling-club – будет общей целевой страницей клуба
http://www.mysite.com/club/juggling-club/events – Показать все пользовательские типы сообщений
http://www.mysite.com/club/juggling-club/event/sponsored-juggle – Показать конкретную запись

Я рассматриваю вопрос о том, чтобы сделать выбор клуба необходимым для публикации, поскольку контент всегда должен принадлежать клубу, и это должно защитить шаблон URL, который я создал.

Я посмотрю, как обстоят дела с шаблонами, я также планирую ввести термин таксономии в качестве класса css для тела, чтобы помочь с заданием стиля некоторых элементов.

Любые дальнейшие идеи комментариев по-прежнему приветствуются! Надеюсь, это поможет кому-то организовать контент.