我正在显示自定义帖子类型,按照它们的自定义分类法分组(基本上使用了ChipBennett的答案:Display all posts in a custom post type, grouped by a custom taxonomy) 对于网站的产品部分。
但是,我想限制最初显示的产品数量。比如,显示4,如果该类别下有4个以上的产品,那么我想添加一个“加载更多产品”链接,单击该链接后,将该类别中的其余产品加载到页面上。
我可以用一些JS来实现这一点(最初只显示:nth子元素(-n+4),而隐藏其余的子元素),但我怀疑使用WP/PHP有一个更优雅、资源密集度更低的解决方案。
<section id="products" class="padd-me">
<h1 class="heading centered main-color">Our Products</h1>
<?php
$productCategories = get_terms( \'product_taxonomy\' );
foreach ( $productCategories as $productCategory ) {
$productQuery = new WP_Query( array(
\'post_type\' => \'product\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'product_taxonomy\',
\'field\' => \'slug\',
\'terms\' => array( $productCategory->slug ),
\'operator\' => \'IN\'
)
)
) );
if ( $productQuery->have_posts() ) {
?>
<div class="product-row">
<div class="product-title">
<h3><?php echo $productCategory->name; ?></h3>
</div>
<div class="product-pics-wrap">
<?php
while ( $productQuery->have_posts() ) {
$productQuery->the_post();
$backgroundImg = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'full\' );
?>
<a href="<?php the_permalink(); ?>">
<div class="product-pic" style="background-image:url(\' <?php echo $backgroundImg[0] ?>\');"></div>
</a>
<?php
}
?>
</div>
<div class="more-products-link-wrap">
<a class="more-products" href="#">see all products</a>
</div>
</div>
<?php
};
?>
<?php
// Reset things, for good measure
$productQuery = null;
wp_reset_postdata();
}
?>