我有自定义帖子类型(产品),其中包含自定义数字字段(评级)。在类别(制造商)页面上,我想平均这些评级,以给出制造商的总评级。
所以我正在尝试构建一个返回单个值的函数:
任何想法如何解决这个问题?
答案 0 :(得分:0)
您可以创建要应用于“制造商”页面的自定义模板。在主循环中,您将使用WP_Query创建辅助循环。然后,您可以浏览自定义帖子类型并累积其存在的评级。设置计数器来计算平均值。然后使用wp_reset_query()
在必要时重置循环。
我没有测试下面的代码(显然,我不会去设置所有这些),但它应该给你足够的想法,你可以调整/调试它以获得期望的结果;
我在此示例中的自定义帖子类型4中创建了一个虚构的类别ID,您可以将其更改为您的设置;
<?php
$counter = 0;
$cumulative_value = 0;
$avg_query = new WP_Query(array('post_type' => 'product', 'posts_per_page' => '-1', 'cat' => '4' ));
if ( $avg_query->have_posts() ) :
while ($avg_query->have_posts()) : $avg_query->the_post();
if ( $rating_value = get_post_meta($post->ID, 'rating', true) ) :
$cumulative_value += $rating_value;
$counter++;
endif;
endwhile;
endif;
$avg_value = $cumulative_value/$counter;
wp_reset_query(); ?>