Собственные типы публикаций в качестве таксономий

Есть отличный плагин, который позволяет использовать собственные типы публикаций (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’ — название собственного типа документа. Позже рассмотрим более сложные случаи — с произвольной сортировкой и запросом подтипа (например, список амплуа актеров, снявшихся в фильме).

Добавить комментарий