サポート » 使い方全般 » 現在表示している記事に投稿されたコメントの平均値を表示する方法

  • 現在評価サイトの制作をおこなっています。
    コメントに5段階評価(meta_key = rate06)を追加していますので、
    wpdbを使用し、評価の平均値を出力したいと考えています。
    現在、サイト全体に投稿された評価の平均値は下記コードで出力できるのですが、
    現在表示している記事の評価平均値のみを出力したいと考えています。
    ご教示いただけると幸いです。

    <?php
    $average = $wpdb->get_var("
        SELECT AVG(meta_value)
        FROM $wpdb->commentmeta
        WHERE meta_key = 'rate06'
    ");
    echo $average;
    ?>
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 多分動くと思います。

    // functions.php に書く
    function get_avg($post = null){
        $post = get_post($post);
        $query = <<<SQL
            SELECT AVG(cm.meta_value) FROM {$wpdb->comments} AS c
            INNER JOIN {$wpdb->commentmeta} AS cm
            ON c.comment_ID = cm.comment_id AND cm.meta_key = 'rate06'
            WHERE c.comment_post_ID = %d
    SQL;
        return (float) $wpdb->get_var($wpdb->prepare($query, $post->ID));
    }
    // テーマ内部で実行
    echo get_avg();
    

    あ、global $wpdb; 宣言がないですね。

    function get_avg($post = null){
         global $wpdb;
    

    こうかな?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「現在表示している記事に投稿されたコメントの平均値を表示する方法」には新たに返信することはできません。