显示自定义帖子类型中2个类别/分类的帖子

时间:2013-01-10 10:18:26

标签: php wordpress loops categories taxonomy

我正在制作wordpress节日网站的阵容页面。我在我的wordpress主题“艺术家”中添加了一个自定义帖子类型。我有3个类别代表不同的日子,2个类别代表每个节日的不同阶段。我现在想要显示按日和按阶段分类的所有艺术家。例如:

星期五
 ROOM1:ARTIST1,ARTIST2,ARTIST3,...
 ROOM2:ARTIST4,ARTIST5,ARTIST6,...
SATURDAY
 ROOM1:ARTIST1,ARTIST2,ARTIST3,...
 ROOM2:ARTIST4,ARTIST5,ARTIST6,...
星期日
 ROOM1:ARTIST1,ARTIST2,ARTIST3,...
 ROOM2:ARTIST4,ARTIST5,ARTIST6,...


我试了几个小时才找到合适的代码,但没有雪茄,这里使用“类别”错了,因为它是一个自定义的帖子类型?

感谢您的帮助

<h2>FRIDAY</h2>
                        <?php // the loop ?>
                            <?php $query = new WP_Query( array( 'category__and' => array( 6, 7 ) ) ); ?>

                            <?php if ($query->have_posts()) : ?>

                                <?php while ($query->have_posts()) :$query->the_post(); ?>

                                    <?php $query->get_template_part( 'includes/loop' , 'index'); ?>

                                <?php endwhile; ?>                  

                            <?php else : ?>

                                <p><?php _e( 'Sorry, no artists found.', 'themify' ); ?></p>

                            <?php endif; ?> 


                        <h2>SATURDAY</h2>

                        <h2>SUNDAY</h2>

2 个答案:

答案 0 :(得分:0)

作为您要处理的自定义帖子类型,您必须在查询中通过添加'post_type' => 'artist'

来指定此类型

关于类别,如果您使用的是自定义类别,请查看here,您需要添加以下内容:

'tax_query' => array(
    array(
        'taxonomy' => 'category',
        'field' => 'id',
        'terms' => array(6,7)
    )
)

如果您使用的是默认WP类别,则应该只能使用:'category__in' => array(6,7)而不是category__和

答案 1 :(得分:0)

你应该尝试这样的事情:

<?php $query = new WP_Query( 
                   array(
                       'tax_query' => array(
                            array(      
                                'taxonomy' => '[taxonomy-name]',
                                'field' => 'id',
                                'terms' => array(6, 7),
                                'operator' => 'AND'
                            )
                        ),
                        'posts_per_page' => -1
                    )
                ); ?>

<?php if ($query->have_posts()) : ?>
    <?php while ($query->have_posts()) :$query->the_post(); ?>
        <?php $query->get_template_part( 'includes/loop' , 'index'); ?>
    <?php endwhile; ?>                  
<?php else : ?>
   <p><?php _e( 'Sorry, no artists found.', 'themify' ); ?></p>
<?php endif; ?>

不要忘记填写正确的分类名称,您只需在数组中添加术语即可 希望这会有所帮助。