Wordpress get_posts按类别

时间:2015-06-30 19:56:44

标签: wordpress

我有以下代码:

$args = array(
    'posts_per_page'   => -1,
    'category'         => 7,
    'orderby'          => 'name',
    'order'            => 'ASC',
    'post_type'        => 'product'
);

$posts = get_posts($args);var_dump($posts);

这应该返回一个我知道属于该类别的帖子,但事实并非如此。如果我省略“类别”论证,我会得到所有产品,所以我知道这应该正常工作。如果我将类别更改为1并取出我的自定义帖子类型(产品),我会收到我的默认帖子。

我看不出这有什么问题。有谁能发现问题所在?

1 个答案:

答案 0 :(得分:1)

如果你喜欢你可以用WP_Query完成同样的事情。这得到了帖子类型"产品"与" posts_per_page"对于帖子的数量," product_cat"对于产品类别。希望这有帮助!

编辑:如果你想按自己的方式去做,可能不是"类别"尝试" product_cat"

<ul class="products">
    <?php
        $args = array( 'post_type' => 'product', 'posts_per_page' => 1, 'product_cat' => 'shoes', 'orderby' => 'rand' );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

            <h2>Shoes</h2>

                <li class="product">    

                    <a href="<?php echo get_permalink( $loop->post->ID ) ?>" title="<?php echo esc_attr($loop->post->post_title ? $loop->post->post_title : $loop->post->ID); ?>">

                        <?php woocommerce_show_product_sale_flash( $post, $product ); ?>

                        <?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'shop_catalog'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Placeholder" width="300px" height="300px" />'; ?>

                        <h3><?php the_title(); ?></h3>

                        <span class="price"><?php echo $product->get_price_html(); ?></span>                    

                    </a>

                    <?php woocommerce_template_loop_add_to_cart( $loop->post, $product ); ?>

                </li>

    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
</ul><!--/.products-->