WordPress - 获取自定义分类法类别中的帖子

时间:2012-07-18 19:15:04

标签: wordpress taxonomy custom-post-type

我的WP查询有点奇怪的问题。我有一个自定义的帖子类型(组合),有一个名为year的自定义分类。我每年都有类别,所以我想要的是显示每年的所有帖子。问题是,只有2012年有效。如果我订购ASC / DESC类别无关紧要 - 只有2012年有效。

<section id="content">
    <?php
    $categories = get_categories('taxonomy=year&order=DESC');
    foreach($categories as $category) : ?>
    <article class="year">
        <h2><?php echo $category->name ?></h2>
        <div class="items"> 
        <?php
        $posts = get_posts('taxonomy=year&post_type=portfolio&year=' . $category->slug);
        foreach($posts as $post) : ?>
            <div class="item">
            <?php 
            $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
            echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" rel="lightbox[' . $category->slug . ']" >';
            the_post_thumbnail('thumbnail');
            echo '</a>';
            ?>
            </div>
        <?php endforeach; ?>                    
        </div>  
    </article>
    <?php 
    endforeach;
    wp_reset_query();
    ?>
</section>

我做错了什么?对我来说,这似乎是正确的..我已经尝试了一系列不同的尝试,从真实的查询到荒谬的排序,但我只是无法做到正确..

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我现在已经解决了这个问题,但仍然没有得到它100%,但它至少可以工作..必须有一些更聪明的方法来做到这一点,因为我现在循环通过所有图像的每个术语。好吧,这是代码(按照自定义分类法中的术语分组)。

<section id="content">
<?php
$categories = get_categories('taxonomy=year&order=DESC');

foreach($categories as $category) { ?>

    <article class="year">
        <h2><?php echo $category->name ?></h2>
        <div class="items"> 
        <?php
        $args = array(
            'post_type' => 'portfolio'
        );

        query_posts($args);
        $count = 0;

        while(have_posts()) : the_post();
            $terms = get_the_terms( $post->ID, 'year' );

            foreach ( $terms as $term ) {
                $imgslug = $term->name;
            }

            if($imgslug == $category->name) {
                if($count == 6) {
                    echo '<div class="expanded-items">';
                }
        ?>
                <div class="item">
                <?php 
                $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
                echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" rel="lightbox[' . $category->slug . ']" >';
                the_post_thumbnail('thumbnail');
                echo '</a>';
                ?>
                </div>

                <?php 
            }
            $count++;

        endwhile;
        if($count >= 6) {
            echo '</div>';
        }
        ?>                  
        </div>
        <div class="expand">Visa fler</div>
    </article>
<?php } ?>
</section>

这是一个可扩展的列表,因此它从一开始就显示6,然后展开以显示其余的项目(jQuery)。