????ワードプレスでの口コミサイトの構築
現在、CMS(ワードプレス)をベースに口コミサイトの構築を勉強しています。
口コミサイトの構築のため、“Reviews Plus"というプラグインを導入し、利用しています。
プラグインのfunction.php内のソースコードをみて、星評価の平均値をechoで呼び出しする事はできたのですが、平均値についてはデータベースへは保存される仕組みになっていないようです。
プラグインではPOST IDに紐づいた口コミ評価の投稿数と、ic_reviewsの値をfunction.php内で計算して表示しているようです。
口コミの平均値が高い順や、低い順で投稿のアーカイブページでソートする事を考えると、平均値を数値としてデータベースに格納し、それを呼び出す形で処理するのだと思うのですが、知識が浅いのでここで躓いてしまっています。
お分かりになる方がおりましたら、お力添えいただけると幸いです。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
おそらく該当する箇所であろうコードを抜粋しました。 ↓ function ic_get_reviews_average( $product_id ) { $totals = ic_get_product_review_totals( $product_id ); $total_summary = $totals[ 'total' ]; if ( !empty( $total_summary ) ) { unset( $totals[ 'total' ] ); unset( $totals[ 0 ] ); krsort( $totals ); $total_achieved = 0; foreach ( $totals as $key => $total ) { $total_achieved += $key * $total; } $max = $total_summary * 5; $total_score = number_format( ($total_achieved / $max) * 5, 1 ); return $total_score; } return 0; } function ic_get_review_totals_html( $product_id ) { $totals = ic_get_product_review_totals( $product_id ); $html = '<div class="review-totals">'; $total_summary = $totals[ 'total' ]; unset( $totals[ 'total' ] ); unset( $totals[ 0 ] ); krsort( $totals ); $total_achieved = 0; $reviews_break = '<div class="reviews-break">'; foreach ( $totals as $key => $total ) { $stars_label = ic_get_stars_label( $key ); $reviews_break .= '<div class="review-total-' . $key . ' review-total-row"><div class="stars-count">' . $stars_label . '</div> ' . ic_stars_qty_graph( $total, $total_summary ) . ' <div class="row-total">' . $total . '</div></div>'; $total_achieved += $key * $total; } $reviews_break .= '</div>'; $html .= '<div class="reviews-summary"><span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">'; $html .= '<meta itemprop="itemReviewed" content="' . get_the_title( $product_id ) . '">'; if ( !empty( $total_summary ) ) { $max = $total_summary * 5; $total_score = number_format( ($total_achieved / $max) * 5, 1 ); $html .= sprintf( __( 'Average Rating: <strong>%s out of %s</strong> (%s votes)', 'reviews-plus' ), '<span itemprop="ratingValue">' . $total_score . '</span>', '<span itemprop="bestRating">5</span>', '<span itemprop="ratingCount">' . $total_summary . '</span>' ); } $html .= '</span></div>'; $html .= $reviews_break; $html .= '</div>'; return $html; } ーーーーーーーーーーーーーーーーーーーーー <?php echo ic_get_reviews_average($post->ID); ?> これをフロントのphpで読み出すと、平均評価は数値として値で出てきます。
試したこと
参考書やWEBを調べて一通り試してみたのですが、やはり良い結果が出ず、1ヶ月ほど先に進めていません。
知識が足らず、お恥ずかしい限りです。
補足情報(FW/ツールのバージョンなど)
WordPress 4.9.6
ここにより詳細な情報を記載してください。