我很难想出一个解决方案,我正在使用自定义帖子类型和4个自定义分类法构建产品目录。产品目录由“型号”分隔,但每个“型号”最多可以有15个“产品”变体。每个“产品”都有不同的属性,我需要能够根据这些属性过滤产品列表。
从结构上讲,我的工作是这样组织的:
产品(自定义贴子类型)
- 除“型号”外,每个分类法都用作筛选所示产品的方法。我正在使用Query Multiple Taxonomies插件来帮助我过滤每个产品的属性。这很有效。它允许我使用默认的Wordpress模板层次结构,并对分类法进行所有更改。php文件。
这就是我迷路的地方。我想限制显示的结果,以便只显示每个模型中的一个,即使过滤可能会返回每个模型中的多个产品。
我目前正在使用循环和get\\u The\\u terms()创建一个数组,然后使用array\\u unique()函数只将每个模型名称的一个实例保存到一个数组中。以下是我对该部分的代码:
$modelSlugs = array();
while (have_posts()) : the_post();
// Gather the model names assigned to each product
$terms = get_the_terms( $post->ID, \'models\' );
if ( $terms && ! is_wp_error( $terms ) ) :
$term = array_pop($terms);
$modelSlugs[] = $term->slug;
endif;
endwhile;
$modelList = array_unique($modelSlugs);
这将只给我一个模型slug(或名称),这很好,但我还需要显示产品缩略图,并使用永久链接链接到单个产品页面。我知道我可以根据每个slug生成额外的查询,但这听起来像是一场性能噩梦。我越想越觉得这是错误的做法。我知道返回的$wp\\u query对象包含了我可能需要的所有内容,但我不确定要使用什么技巧来确保每个模型只显示一篇文章。在运行循环之前,是否有方法准备或操作返回的WP\\u查询对象,或者是否可以在循环内部执行一些操作来限制显示的产品数量?