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

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

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

解決済

1回答

1305閲覧

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

o2ai

総合スコア18

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

1クリップ

投稿2018/10/05 15:16

編集2018/10/06 20:22

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/10/05 21:35

タイトルには要件のみを記載してください。WordPressの質問であることはタグで分かります。また、ソースコードはマークダウンのcode機能を利用してください。 https://teratail.com/help#about-markdown WordPressである場合は特に使用しているテーマ名(またはその配布元サイト)を提示された方が回答者も再現確認もしやすくなります。
m.ts10806

2018/10/05 21:37

「echo部分しか表示されません。」とはどういう状況でしょうか。状況を具体的に記載するか、画面キャプチャを提示願います。
o2ai

2018/10/06 19:54

mts10806さん、詳しく教えてくれてありがとうございます。すいません、マークダウンというのが調べてみたのですが、やり方がわかりませんでした。テーマは「Luxeritas」というテーマを使っています。 echo部分については質問内容を編集して画像を上げてみたいと思います。
m.ts10806

2018/10/06 19:58

一応リンクも貼っておいたのですが、わかりづらければ質問編集画面でコード部分を選択し<code>ボタンを押してください。その際にコード以外の文言はそのコードブロック```で囲まれている中には残らないようにしてください。編集画面ではPCではリアルタイムでプレビューが見れますので。投稿前に調整いただけたらと。あと追加情報についても質問本文に追記してください。
m.ts10806

2018/10/06 19:59

質問者さん あと、 dousojinさんがリンク貼ってくれていますが、teratailは「マルチポスト」は非推奨です。こちらの書いてあるようにきちんと対応してください→ https://teratail.com/help#posted-otherservice
o2ai

2018/10/06 20:03

ありがとうございます。「マルチポスト」非推奨なのですね。マルチポストへの対応も本文に追記しておきます
m.ts10806

2018/10/06 20:32

1つ注意していただきたいのはマルチポストをする人には回答がつきにくいということです。teratailに同じ質問を何度も投稿する人がいますが、それと似ています。早く解決したいから、というのが理由があるかもしれませんが、それは質問者さんの都合なので、実はマルチポストをすることで解決への道を逆に遠くしてしまっていることが多々あります。(深夜や早朝ではそもそもteratailでなくても見ている人は少ないですしね)1つのサイトで解決するまでしっかりやりとりするのが吉かと思います。質問サイトを使う以上は回答してくれる人の都合も発生し、あなた一人の都合では片付かなので、時間はある程度かかると思っておいたほうが良いです。自分自身で解決できるようになればそれが一番早いのは分かるかと思いますが、他人の時間を使うことを選んだ以上は腰を据えて解決まで頑張るのが質問者さんの責任だと私は思います。
o2ai

2018/10/06 20:48

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

2018/10/06 23:46 編集

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

2018/10/07 07:34

肝に銘じておきます
guest

回答1

0

ベストアンサー

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

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

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

php

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

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


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

投稿2018/10/06 01:48

編集2018/10/07 01:14
KazuhiroHatano

総合スコア7802

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

o2ai

2018/10/06 20:22 編集

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

2018/10/07 01:19

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

2018/10/07 13:17

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問