検索キーワードを入力:

GD STAR RATINGとリッチスニペットとaverage等表示カスタマイズ

GD STAR RATINGとリッチスニペットとaverage等表示カスタマイズ

今回は、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]

ありがとうございました。

About Little

WordPressをいじくり倒して早10年。一人ぼっちでひたすらソースとにらめっこ厨。 有り難いことに、Welcart/WP e-commerce/WooCommerce/EC-Cube等で多数ECサイトを制作させていただいたけど、ふと気付いた、ちゃんと売れるのか。 効果的に売れるようにするためにはどうしたらいいのか。ということでお勉強を兼ねてECサイトも運営中。
2012年7月4日

Related Posts

One comment found

Comments for: GD STAR RATINGとリッチスニペットとaverage等表示カスタマイズ

  1. Pingback: GD Star Rating 固定ページに表示する方法と、rating順に投稿を並べ替える方法 | Wordpressでの開発メモ帖

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です