今回は、GD STAR RATINGについてですが、カスタマイズ性が高い反面、なかなかググっても情報が出てこなかったりして大変。
wordpressで構築したECサイトのレビューの機能をつけるのに使用させていただきましたが、ショップにメンバー登録していて、かつ購入履歴があるかどうかを切り分けして、当てはまる人だけにレビューの投稿の機能をつけました。
レビューで星のレーティングをつけてもらって、レビュー表示の際に、それぞれのレビューについている星の表示は非常に簡単だったのだけど、schema.org先生の形式にのっとったリッチスニペットもついでに付加したかったので、average(平均点)とか、満点の点数とか、あとはレビューの数なんかも自分の希望通りに出力したかったのです。
GD STAR RATINGにはテンプレートを作って出力させる機能があるのだけど、そんな事するよりもソース除いた方が早いはず。という、あまのじゃくな心に突き動かされて今日に至りました。
記事・商品のGD STAR RATINGデータを読み込む
記事(今回のサイトでは商品)のレビューデータは全てwp_gdsr_rating_article()という関数で取得できます。
ループ内では以下のように
[php]$blog_rating = wp_gdsr_rating_article(get_the_ID());[/php]
これで、$blog_ratingの中に格納されたデータはこんな感じ
[php]GDSRArticleRating Object (
[post_id] => 52
[review] => -1.0
[user_votes] => 0
[visitor_votes] => 1
[votes] => 1
[views] => 226
[user_rating] => 0
[visitor_rating] => 5.0
[rating] => 5.0
[thumbs_user_rating] => 0
[thumbs_visitor_rating] => 0
[thumbs_rating] => 0
[thumbs_user_votes] => 0
[thumbs_user_votes_plus] => 0
[thumbs_user_votes_minus] => 0
[thumbs_visitor_votes] => 0
[thumbs_visitor_votes_plus] => 0
[thumbs_visitor_votes_minus] => 0
[thumbs_votes] => 0
[thumbs_votes_plus] => 0
[thumbs_votes_minus] => 0
)[/php]
今回欲しいのは、平均点(average)と合計のレビュー数。
リッチスニペットで使う最高得点bestRatingは、自分で分かるからいいでしょ・・。
gdsr_settings_get(‘stars’)でも取得できるみたいだけど。
このオブジェクトに格納されてるratingが平均点で、votesが合計のレビュー数(星つけて貰った回数)です。
データからGD STAR RATINGの星を出力
上記のオブジェクトから、星の画像を出力させちゃいます。
[php]gdsr_render_stars_custom($settings = array(), $echo = true));[/php]
GD STAR RATINGには好きなように星を出力してくれる上記の様な関数があるので、
[php]
gdsr_render_stars_custom(array(
"max_value" => 5,
"size" => 20,
"vote" => $blog_rating->rating
));
[/php]
$settingsで、どの様に出力させるかを指定出来ます。
max_valueは、その名の通り満点の時(今回は星5つ)
sizeは星のサイズ、画像のタイプによりますが12,16,20,24が指定出来ます。
今回は平均点数を表示させたいので、voteに、先ほど取得した$blog_ratingの中のratingを。
以上で、星は出力させれるので、あとは自分でカスタマイズしちゃえばいいと思います。
ちなみに上記をまとめて書くと以下の通り。
[php]
<?php
$blog_rating = wp_gdsr_rating_article(get_the_ID());
gdsr_render_stars_custom(array(
"max_value" => 5, //gdsr_settings_get(‘stars’)
"size" => 20,
"vote" => $blog_rating->rating
));
?>
[/php]
ありがとうございました。
- Facebook GraphAPI v2.9でいいね・シェア数をPHPで取得して表示 - 2017年9月7日
- phpstormのFilewatcherでautoprefixerを使う方法 - 2017年1月19日
- Custom Field Templateを使用してのプレビューを実装 - 2016年1月14日
- WordPress:WooCommerceを使ってみて分かったこと - 2013年7月5日
- 誰得なプラグイン Ultimate Google Analytics改をひっそりと公開します - 2013年6月4日
- プラグイン『WooCommerce Fields for Japan』を公開しました - 2013年4月21日
- 公式 WordPress.orgプラグインディレクトリでのプラグイン公開のススメ - 2013年4月17日
- WordPress:WooCommerceを日本仕様へと日本語化 - 2013年4月15日
- webクリエイター パソコンを買う。 - 2013年3月16日
- WordPress:『続きを読む』read moreをpタグで囲む - 2013年3月5日
Pingback: GD Star Rating 固定ページに表示する方法と、rating順に投稿を並べ替える方法 | Wordpressでの開発メモ帖