Я создаю тему WordPress для лейбла. Одним из аспектов является видео галерея.
Я создал галерею, используя пользовательский тип записи, называемый «видео». Код ниже - это то, что я поместил в свой файл functions.php для настройки типа записи:
add_action( 'init', 'create_my_post_types' );
function create_my_post_types() {
register_post_type( 'videos',
array(
'labels' => array(
'name' => __( 'Videos' ),
'singular_name' => __( 'Video' ),
'add_new' => 'Add New Video',
'edit' => 'Edit Video'
),
'public' => true,
'exclude_from_search' => false,
'supports' => array( 'title', 'editor', 'thumbnail','page-attributes','excerpt' ),
'rewrite' => array( 'slug' => 'videos', 'with_front' => false ),
));
}
Я также создал собственную таксономию под названием «художники», чтобы назначать имя исполнителя каждому загружаемому видео.
add_action( 'init', 'create_videos_taxonomies' );
function create_videos_taxonomies() {
register_taxonomy(
'artist',
'videos',
array(
'hierarchical' => false,
'label' => 'Artist',
'query_var' => true,
'show_tagcloud' => true,
'show_ui' => true,
'rewrite'=>array('slug' => 'artists', 'with_front' => false)
)
);
}
На этом этапе все отлично работает на бэкенде, и страница видео возвращает все видео успешно.
В другой части моего сайта у меня есть страницы для каждого исполнителя. На любой из этих страниц исполнителей я хотел бы иметь возможность просматривать все видео в созданном мною типе поста и возвращать результаты только для данной таксономии. Ниже приведен мой код для циклического прохождения пользовательского типа сообщения:
<?php $loop = new WP_Query( array( 'post_type' => 'videos', 'post_child' => 0, 'posts_per_page' => 5 ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<?php the_post_thumbnail( 'video' ); ?>
<?php the_content(); ?>
<?php endwhile; ?>
Это успешно просматривает видео и возвращает 5 самых последних. Мне нужно это, чтобы просмотреть все видео с определенным слагом таксономии или идентификатором. Например, я создал таксономию под названием «Smash Palace», в которой есть фрагмент «smash-palace» и идентификатор «17». Любая идея, как я могу зациклить этот пользовательский тип сообщения и только возвращать результаты в данной таксономии?