限制wpsc_start_ategory_Query的结果数量

时间:2013-04-12 作者:jhc

遵守以下代码:

<ul>
<?php wpsc_start_category_query(array(\'category_group\'=>get_option(\'wpsc_default_category\'),\'show_thumbnails\'=>get_option(\'show_category_thumbnails\'))); ?>
    <li>
    <div>
        <div class="image"><?php wpsc_print_category_image(); ?></div>
        <div class="caption-title transparent_class">
            <?php wpsc_print_category_name();?>
        </div>
        <div class="caption transparent_class">
            <a href="<?php wpsc_print_category_url();?>" class="wpsc_category_link"><?php wpsc_print_category_name();?></a>
            <?php if(get_option(\'wpsc_category_description\')) :?>
            <?php wpsc_print_category_description("<div class=\'wpsc_subcategory\'>", "</div>"); ?>
            <?php endif;?>
        </div>

    </div>
    </li>

    <?php wpsc_end_category_query(); ?>

</ul>
以上代码在列表中显示我的所有产品类别。这种方法的问题是,我无法限制产生的类别数量。例如,如果我想显示4个随机类别,但我的WP数据库中有6个,那么我将无法得到我想要的。

有没有其他方法可以获得anx 所有可能性的类别数?也许有WP_Query?

1 个回复
最合适的回答,由SO网友:matiyin 整理而成

wpsc\\u start\\u category\\u query()函数基本上调用用于进行WP查询的本机WP get\\u terms()函数:

$category\\u list=get\\u terms(\'wpsc\\u product\\u category\',\'hide\\u empty=0&parent=\'。$category\\u id);

由于WPEC使用自定义的post类型,您可以轻松地构建自己的查询,这里使用http://codex.wordpress.org/Function_Reference/get_terms

但是get\\u terms()不做随机操作,因此必须将它们全部获取,然后将数组随机排列,然后输出前4个(设置为$max的任何数字)。因此,调整布局代码应该是:

<ul>
<?php 
//display random sorted list of wpsc product categories
$counter = 0;
$max = 4; //number of categories to display
$terms = get_terms(\'wpsc_product_category\');
shuffle ($terms); //makes list random
if ($terms) {
    foreach($terms as $term) {
        $counter++;
        if ($counter <= $max) { ?>
            <li>
            <div>
                <div class="image"><img src="<?php echo wpsc_category_image($term->term_id); ?>" width="<?php echo get_option(\'category_image_width\'); ?>" height="<?php echo get_option(\'category_image_height\'); ?>" /></div>
                <div class="caption-title transparent_class">
                    <?php echo $term->name; ?>
                </div>
                <div class="caption transparent_class">
                    <a href="<?php get_term_link( $term->slug, \'wpsc_product_category\' ); ?>" class="wpsc_category_link"><?php echo $term->name; ?></a>
                    <?php if(get_option(\'wpsc_category_description\')) :?>
                    <?php echo \'<div class="wpsc_subcategory">\'.$term->description.\'</div>\'; ?>
                    <?php endif;?>
                </div>

            </div>
            </li>
        <?php }
    }
}
?>
</ul>
我已经测试了代码,并按照所描述的方式工作。

结束

相关推荐