Wordpress: зацикливание на пользовательских типах записей и возвращение результатов только по заданной таксономии - PullRequest
2 голосов
/ 02 апреля 2011

Я создаю тему 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». Любая идея, как я могу зациклить этот пользовательский тип сообщения и только возвращать результаты в данной таксономии?

Ответы [ 2 ]

0 голосов
/ 07 июня 2013
'category_name' => 'Category Slug Here'
0 голосов
/ 02 апреля 2011

Я чувствую, что вы должны иметь возможность делать запросы на основе post_type и таксономии, например:

<?php $loop = new WP_Query( array( 'post_type' => 'videos', 'taxonomy_name' => $term, 'post_child' => 0, 'posts_per_page' => 5 ) ); ?>

нашел похожий вопрос по SO: Wordpress, WP_Query с пользовательской таксономией и пользовательским типом записи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...