Есть отличный плагин, который позволяет использовать собственные типы публикаций (Custom Post Type, CPT) в качестве таксономий для других типов публикаций.
Поскольку это звучит сложновато, я добавлю отдельные статьи о таксономиях и собственных типах публикаций.
Для простоты представим ситуацию, когда нам необходимо статьи об актерах связать с фильмами, в которых они играли.
Традиционный подход — создаем и регистрируем новые типы публикаций для актеров и фильмов… И дальше начинаем придумывать как их связать. Например, добавляем тег, или скрытое поле, в котором перечисляем id фильмов (если речь идет о досье актера). Для удобства в админке добавляем блок с «чекбоксами», состояние которых сохраняем в скрытом поле.
Плагин CPT-onomies делает всю эту работу за вас. После активирования плагина в нем можно создать новые типы документов (или воспользоваться уже созданными), указать связанные типы и способ отображения списка — выпадающий список, «чекбоксы» или поле c автозаполнением.
Для отображения списка связанных документов можно воспользоваться стандартными функциями WordPress.
Например, для фильма список актеров может выглядеть так:
<ul> <?php global $post; $actors = get_the_terms( $post->ID, 'my_actor' ); foreach ( $actors as $star ) { ?> <li><a href="<?php echo get_permalink($star->term_id); ?>" title="<?php echo $star->name; ?>"><?php echo $star->name; ?></a></li> <?php } ?> </ul>
В примере выше ‘my_actor’ — название собственного типа документа. Позже рассмотрим более сложные случаи — с произвольной сортировкой и запросом подтипа (например, список амплуа актеров, снявшихся в фильме).