我想在首页上显示客户评论的总数,我尝试了这种方法:
<?php
$args = array(
'status' => 'approve',
'post_status' => 'publish',
'post_type' => 'product'
);
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );
$count = get_comment_count($comments);
?>
<span class="total_reviews">
<?php echo $count['approved'] . ' reviews' ?>
</span>
但是没有按我想要的那样工作!例如,我有4条评论,此代码仅显示(1条评论),而不是(4条评论)。
关于平均水平,我对主页上的工作方式一无所知,我只知道如何使用下面的代码在单个产品页面上实现此功能:
$average = $product->get_average_rating();
但是,此代码仅适用于单个产品的平均评分,而不是我想要的所有评论的全球平均值。
任何帮助表示赞赏。
更新 (在没有评论的情况下避免最后一个函数的错误)
在下面,您将找到4个自定义函数,这些函数将为您提供:
功能代码:
function get_total_reviews_count(){
return get_comments(array(
'status' => 'approve',
'post_status' => 'publish',
'post_type' => 'product',
'count' => true
));
}
function get_products_ratings(){
global $wpdb;
return $wpdb->get_results("
SELECT t.slug, tt.count
FROM {$wpdb->prefix}terms as t
JOIN {$wpdb->prefix}term_taxonomy as tt ON tt.term_id = t.term_id
WHERE t.slug LIKE 'rated-%' AND tt.taxonomy LIKE 'product_visibility'
ORDER BY t.slug
");
}
function products_count_by_rating_html(){
$star = 1;
$html = '';
foreach( get_products_ratings() as $values ){
$star_text = '<strong>'.$star.' '._n('Star', 'Stars', $star, 'woocommerce').'<strong>: ';
$html .= '<li class="'.$values->slug.'">'.$star_text.$values->count.'</li>';
$star++;
}
return '<ul class="products-rating">'.$html.'</ul>';
}
function products_rating_average_html(){
$stars = 1;
$average = 0;
$total_count = 0;
if( sizeof(get_products_ratings()) > 0 ) :
foreach( get_products_ratings() as $values ){
$average += $stars * $values->count;
$total_count += $values->count;
$stars++;
}
return '<p class="rating-average">'.round($average / $total_count, 1).' / 5 '. __('Stars average').'</p>';
else :
return '<p class="rating-average">'. __('No reviews yet', 'woocommerce').'</p>';
endif;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。
用法
客户评论总数:
echo '<p>'.__('Total reviews','woocommerce').': '.get_total_reviews_count().'</p>';
按评分列表计数的产品:
echo products_count_by_rating_html();
产品平均评价:
echo products_rating_average_html();
请求header GET /v1/activity/{频道id}/comments/count Authorization:Bearer {ACCESS TOKEN} 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请将"{频道id}"替换您需要获取的频道id 返回 { "count": 100 } 返回参数说明 参数 描述 类型 备注 count 数目
问题内容: 我希望每次有人访问时,我的主页上都会出现5条随机评论。 我找到了一些代码来获取所有评论: 当我将简短代码添加到此测试页时,它的工作原理就很好。 如何更改此设置,以仅获得5条随机评论? 另外,我现在该如何格式化该页面以使其仅包含5条评论,并且能够更改页面上评论的外观(间距,字体等)? 问题答案: 使用评论时, 评论不能随意排列 。因此,您需要使用专用的WordPress类来使用简单的轻量
获取所有评论 GET /comments 请求查询参数: 名字 类型 描述 limit integer 可选,本次请求需要返回的数据条数。 index integer 可选,查询开始的评论位置,来源响应 id 字段。 direction string 可选,数据排序方向,以 id 进行排序,支持 asc 或 desc,默认 desc。 author integer 可选,需要筛选的评论作者,传递
评论一条资讯 获取一条资讯的评论列表 删除一条资讯评论 评论一条资讯 POST /news/{news}/comments 参数 名称 描述 body 评论内容 reply_user 被回复用户id 默认为0 Response Headers Status: 201 Created { "message": [ "操作成功" ], "comment": { "use
获取问题评论列表 获取回答评论列表 评论问题 评论答案 删除问题评论 删除回答评论 获取问题评论列表 GET /questions/:question/comments 参数 名称 类型 描述 limit Integer 默认 20 ,获取列表条数,修正值 1 - 30。 after integer 默认 0 ,筛选偏移, 上一次获取的评论列表中最后一条的id 响应 Status: 200 OK
音乐评论列表 专辑评论列表 添加音乐评论 添加专辑评论 删除音乐评论 删除专辑评论 音乐评论列表 GET /music/{music}/comments Parameters 名称 类型 描述 limit Integer 可选,默认值 15 ,获取条数 max_id Integer 可选,上次获取到数据最后一条 ID,用于获取该 ID 之后的数据。 Response Status: 200 OK