サポート » プラグイン » 口コミのプラグイン「WP Customer Reviews」の質問

  • 口コミサイトを作るべく、「WP Customer Reviews」のプラグインを使っています。
    口コミ評価の平均点を出す関数をfunction.phpに以下を追加しました。
    ======================

    /**
    * レートのトータルをページに表示する
    */
    function showRating() {
    //ワードプレスのデータベースインスタンス取得
    global $wpdb;

    //URLから記事のIDを取得
    $url = explode(‘?’, ‘http://’.$_SERVER[“HTTP_HOST”] . $_SERVER[“REQUEST_URI”]);
    $pId = url_to_postid($url[0]);

    //記事IDの平均点と口コミ数を取得
    $row = $wpdb->get_results(“SELECT COUNT(*) AS total,AVG(review_rating) AS aggregate_rating,MAX(review_rating) AS max_rating FROM wp_wpcreviews WHERE page_id= $pId AND status=1″);

    //変数へ格納
    $max_rating = $row[0]->max_rating;
    $aggregate_rating = $row[0]->aggregate_rating;
    $total_reviews = $row[0]->total;
    $total = $aggregate_rating * 20;
    $wpdb->flush();

    //HTMLを出力
    return “<div class=\”container\”><div class=\”sp_rating_average\”>” . $aggregate_rating . “</div><div class=\”sp_rating\” id=\”wpcr_respond_1\”><div class=\”base\”><div style=\”width: “. $total . “%\” class=\”average\”></div></div>(口コミ” . $total_reviews . “ 件) </div></div> “;
    }
    //ショートコードを登録
    add_shortcode(‘showRating’, ‘showRating’);

    ======================

    ここで、投稿ページに、ショートコード、 [showRating] を記述すると、口コミの平均点が出ます。

    これを、トップページに、
    ======================
    <?php if(have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>

    <?php endwhile; endif; ?>
    ======================
    のループ内で使いたいのですが、不可能でしょうか?

    現在、トップページには投稿の一覧のタイトルと画像が表示されているのですが、そこに口コミの平均点も表示したいのです。

    ループ内に [showRating]を記述しても、トップページにはそのまま[showRating]が表示されます。

    何か方法がありましたら、ご教授頂けるとたすかります。
    宜しくお願い致します。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • テンプレート内でショートコードを利用する場合は、

    do_shortcode という関数を利用する必要があります。
    http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/do_shortcode

    たとえば以下の様な形です。

    <?php echo do_shortcode( '[showRating]' ); ?>

    テンプレート内でショートコードを利用する場合は、

    do_shortcode という関数を利用する必要があります。
    http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/do_shortcode

    たとえば以下の様な形です。

    <?php echo do_shortcode( '[showRating]' ); ?>
    トピック投稿者 akira381265

    (@akira381265)

    megane9988さま

    どうもありがとうございました。
    教えて頂いた通り、ショートコードは使えましたが・・・
    考えていた結果とは違いました。
    説明不足で申し訳ありません。。。
    希望は、

    =================
    //HTMLを出力
    return “<div class=\”container\”><div class=\”sp_rating_average\”>” . $aggregate_rating . “</div><div class=\”sp_rating\” id=\”wpcr_respond_1\”><div class=\”base\”><div style=\”width: “. $total . “%\” class=\”average\”></div></div>(口コミ” . $total_reviews . ” 件) </div></div> “;
    =================

    の中にある、

    $aggregate_rating

    を表示させたいのです。
    お手数をお掛けいたしますが、何卒宜しくお願い致します。

    今現在の表示はどのようになっていますか?

    あと、現在の投稿IDを取得するのであれば、

    $url = explode('?', 'http://'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
    $pId = url_to_postid($url[0]);

    ではなく、

    $pid = get_the_ID();

    を使うのがベターかと思います。これであればループ内でも現在ロードされている投稿データのIDが取得できます。

    トピック投稿者 akira381265

    (@akira381265)

    ありがとうございます。
    現在は、テストサイトのトップページのループ内に
    ===============
    <?php if(have_posts()) : ?><?php while (have_posts()) : the_post(); ?>

    <h4 class=”kyotoarea”><?php the_title(); ?></h4>

    <?php echo do_shortcode( ‘[showRating]’ ); ?>

    <?php endwhile; endif; ?>
    ===============

    と書き込んでいますが、投稿ページの口コミ平均点は表示されていません。

    投稿ページに [showRating] を書き込むと、投稿ページには、希望通りの口コミ平均点が出ます。

    何か方法はありますでしょうか?

    よろしくお願いいたします。サイトURLはこちらです。
    http://kyotoikou.com/

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「口コミのプラグイン「WP Customer Reviews」の質問」には新たに返信することはできません。