web-dev-qa-db-ja.com

カスタム分類のカテゴリの最初の投稿を取得する方法

カスタム分類法にバインドされたカテゴリのリストを作成しようとしていますが、各カテゴリの最初の投稿の特集画像を使用しています。

カテゴリを取得するのは簡単ですが、私が投稿のサムネイルを検索しようとすると、取得した最初のカテゴリの最新の投稿から詳細が表示され続けます。

違いが出るのであれば、私はこれをThe Loopの外側で実行しています。

<ul class="product-categories">
    <?php
            $categories = get_terms(
                array(
                    'produkter'
                ),
                array(
                    'hide_empty' => false,
                )
            );

            foreach( $categories AS $cat )
            {
                $taxonomy = new WP_Query( array( 'posts_per_page' => 1, 'tax_query' => array( 'taxonomy' => 'produkter', 'terms' => $cat->slug ) ) );
                while ( $taxonomy->have_posts() )
                {
                    $taxonomy->the_post();
                ?>

                    <li class="produkter">
                        <div class="product-image">
                            <a href="<?php bloginfo( 'wpurl' ); ?>/produkt/">
                                <?php the_post_thumbnail( "product-small" ); ?>
                            </a>
                        </div>

                        <a class="product-title" href="<?php bloginfo( 'wpurl' ); ?>/produkt/"><?php echo $cat->name ?></a>
                    </li>

                <?php
                }
            }
    ?>
</ul>
3
Clorith

tax_queryはtaxクエリ引数の配列を受け取ります(配列の配列を受け取ります)が、単一の配列のみを使用しています。正しいコードは以下の通りです。

<ul class="product-categories">
<?php
        $categories = get_terms(
            array(
                'produkter'
            ),
            array(
                'hide_empty' => false,
            )
        );

        foreach( $categories AS $cat )
        {
           $taxonomy = new WP_Query( array( 'posts_per_page' => 1, 'post_type' =>'book', 'tax_query' => array( array('taxonomy' => 'produkter','field' => 'slug', 'terms' => $cat->slug ) )) );
            while ( $taxonomy->have_posts() )
            {
                $taxonomy->the_post();
            ?>

                <li class="produkter">
                    <div class="product-image">
                        <a href="<?php bloginfo( 'wpurl' ); ?>/produkt/">
                            <?php the_post_thumbnail( "product-small" ); ?>
                        </a>
                    </div>

                    <a class="product-title" href="<?php bloginfo( 'wpurl' ); ?>/produkt/"><?php echo $cat->name ?></a>
                </li>

            <?php
            }
        }
?>
</ul>

詳しくは このページ をご覧ください。

3
Vinod Dalvi