1

我的 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>

我究竟做错了什么?对我来说,这似乎是对的..我已经尝试了很多不同的方法,从真实的查询到荒谬的排序,但我就是做错了..

先感谢您!

4

1 回答 1

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)。

于 2012-07-19T06:16:10.360 回答