1

WP クエリに少し奇妙な問題があります。年と呼ばれるカスタム分類法を持つカスタム投稿タイプ (ポートフォリオ) があります。毎年のカテゴリがあるので、やりたいことは、毎年のすべての投稿を表示することです。問題は、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 に答える