質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.99%

内容にあるコードが機能していないようなのですがなぜかわかりますか?

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 555

o2ai

score 12

投稿タイトル下にそのページの閲覧数を表示させたくて色々いじったのですが同じようにレビューもそこに表示できるのでは?と思い色々検索したのですが、

$review_query="SELECT round(AVG(meta_value),1) AS review_avg,count(meta_value) AS review_cnt FROM wp_postmeta WHERE post_id IN (SELECT post_id FROM wp_postmeta WHERE meta_value=". get_the_ID() ." and meta_key='wpcr3_review_post') AND meta_key='wpcr3_review_rating'";

$myreview = $wpdb->get_row($review_query);

echo '平均評価:' .$myreview->review_avg;
echo ' - ';
echo '投票数:' .$myreview->review_cnt;
?>

これで表示できると書いてあるサイトがあったので閲覧数を表示させたコードの下に入れてみたのですが、投稿ページにはecho部分しか表示されません。
ということはこの

$review_query="SELECT round(AVG(meta_value),1) AS review_avg,count(meta_value) AS review_cnt FROM wp_postmeta WHERE post_id IN (SELECT post_id FROM wp_postmeta WHERE meta_value=". get_the_ID() ." and meta_key='wpcr3_review_post') AND meta_key='wpcr3_review_rating'";

$myreview = $wpdb->get_row($review_query);

の部分は機能していないということですよね?
なぜ機能していないのでしょう?
根本間違ってるのか、貼り付ける場所が違うのか、記述しなくてはいけないことがまだあるのか教えてください。
因みにこれを書き込んだのは子テーマのsingle.php内に入れました。

イメージ説明

画像で情報を追加しました。
画像の内容としましてはechoの部分はサイトに表示されたのですが、肝心のレビュー内容が反映されていない状況という感じです。

*こちらの質問は知恵袋でも質問させていただいています。
マルチポスト掲載先
マルチポストの理由としましてはteratailの方が詳しい方が多いように感じますが、回答が付くまでに時間がかかることがあること私自身のスキル不足で一度の回答がついても解決しないことがほとんどで複数回やりとりを要するため、マルチポストで初歩的な質問を何度もして回答してくださった人を困らせないように質問をする内容を分散させる目的があります。何卒、ご了承くださいますようお願い申し上げます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • o2ai

    2018/10/07 05:48

    ありがとうございます。確かに自分で解決できれば一番早いですね。このような初歩的な質問をする私に詳しい方が答えてくださっていることに対して、少しでも不快にさせないように初歩的な質問の回数を抑えるため、自分で調べながら回答に返信したりマルチポストをしていたのですが、この行為を不快に思われる方もいらっしゃるということがわかりました。その辺りを踏まえた上で活用させていただきたいと思います。

    キャンセル

  • m.ts10806

    2018/10/07 08:44 編集

    質問をうける側の立場になるとわかるかもしれません。会社でも学校でもいいんですが、上司や先輩に質問するときに全く同じ質問を他の上司や先輩にしていたらどう思うでしょうか。「熱心だな」とは思わないと思います。解決したということを全ての質問先に伝えることで一応事態はおさまるように見えますが、大体の人は問題が解決したらそれで終わった気になります。複数質問した先で直接解決した先にしか「解決済み」を知らせずに終わらせてしまうことがほとんどです。職場の上司や先輩であればまだいいですが、ネット上で頼るのは赤の他人です。もしマルチポストに気づけばあなたへ快く回答したくなる人はいなくなるでしょう。ネット上なので同文で質問していればすぐ見つかりますし、マルチポストを良しとしているサービスの方が少ないので回答する前に回答者はマルチポストじゃないか調べる人も少なからずいます。広い知見をもった回答者ほどその傾向にあります(私は指摘で気づくくらいでそこまで広い知見を持っているわけではないですが、マルチポストは気にはなります)つまり、マルチポストをすることであなたの問題や課題の解決を遅らせるどころか、誰にも助けてもらえなくなる事態が必ず起きます。お忘れなく。

    キャンセル

  • o2ai

    2018/10/07 16:34

    肝に銘じておきます

    キャンセル

回答 1

checkベストアンサー

+3

まずそのSQLコードにダメ出ししとくとwp_postmeta$wpdb->postmeta

DBのテーブル名のwp_の部分はWPインストール時の設定によって変わるので
テーブル名はグローバル変数$wpdbから取得するようにしましょう

そもそもWP Customer Reviewというプラグインは入ってるんですよね?

var_dump(get_posts(['meta_key'=>'wpcr3_review_post','meta_value'=>get_the_ID()]);


したらレビューの情報はちゃんと表示されますか?


レビューの情報は対象の投稿のpost_metaとして書かれていると思ってたのが、
よく見たら違ったので動作テストのコードを修正しました

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/07 05:08 編集

    回答ありがとうございます。プラグインは入っています。
    すいません、何分詳しくないもので単語一つ一つを検索していると時間がかかって返信が遅れてしまうことをご了承ください。
    提示してくださったコードはsingle.phpに書き込めばよかったでしょうか?
    その際にwp_postmetaを$wpdb->postmetaに変えればよいのですか?

    キャンセル

  • 2018/10/07 10:19

    まあ、とりあえずwp_postmetaを$wpdb->postmetaにしてみてください

    キャンセル

  • 2018/10/07 22:17

    表示されるようになりました。ありがとうございます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる