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

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

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

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

Q&A

解決済

3回答

4452閲覧

【WordPress】承認待ちのコメントが掲載されてしまう

ShogoChicago

総合スコア38

WordPress

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

0グッド

0クリップ

投稿2016/08/24 01:30

編集2016/08/24 03:36

WordPressで口コミサイトを運営しています。
あるカテゴリーのページにはユーザーがコメントできるようになっており、コメントが投稿されると管理者が承認すれば掲載されるという設定にしています。

#現在起きている問題
コメントが承認されていないのに、即時掲載されてしまうという問題が発生しています。
そのため、スパムのコメントが多く掲載されてしまっているという状況です。

WPのディスカッションの設定は以下のようになっています。
どの部分を修正すればよいか思い当たる方がおりましたら、アドバイスをお願い致します。
ディスカッションの設定

#【追記】コード

PHP

1【single.phpのコメント部分】 2 <?php if ( has_category( 'service' )or has_category( 'popular' )): ?> 3<!--------------CommentArea---------------> 4<div class="col-full"> 5 <div class="wrap-col"> 6 <?php comments_template( ); ?> 7 </div><!-- ^ .wrap-col END--> 8</div><!-- ^ .col-full END--> 9 10<!--------------CommentArea END---------------> 11<?php endif; ?>

PHP

1【comments.php】 2<div id="comment_area"> 3 <div class="comment_post"> 4 5 <?php $args = array( 6 'title_reply' => '口コミを投稿する', 7 'label_submit' => '口コミを送信する', 8 'fields' => array( 9 'author' => '<p class="comment-form-author">' . 10 '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' placeholder="*お名前" /></p>', 11 ), 12 'comment_field' => '<p class="comment-form-comment">' . '<textarea id="comment" name="comment" cols="50" rows="6" aria-required="true"' . $aria_req . ' placeholder="*口コミの内容" /></textarea></p>', 13 ); 14 comment_form( $args ); ?> 15 </div> 16 <div class="posted_comments"> 17 <?php if(have_comments()): ?> 18 <h3 id="comments">投稿された口コミ</h3> 19 <div class="comments-list"> 20 21<?php $comments_per_page = 10; 22 $comments = get_comments( array( 'status' => 'approve' , 'post_id' => $post->ID) ); 23 ?> 24 <?php wp_list_comments( array ( 25 'per_page' => $comments_per_page, 26 'reverse_top_level' => false 27 ), $comments ); ?> 28 29 30 31 </div> 32 <?php endif; ?> 33 </div> 34</div> 35 36 37<?php if(get_comment_pages_count() > 1) : ?> 38 <div> 39 <?php previous_comments_link('次のコメント'); ?> 40 <?php next_comments_link('前のコメント'); ?> 41 </div> 42<?php endif; ?> 43 44

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

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

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

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

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

bananacoffee

2016/08/24 01:47

そのコメントのステータスは本当に承認になっていますか? 編集者や管理者でログイン中のユーザーには承認待ちのコメントも表示されているかと思うのですが・・・ コメント一覧のステータスも合わせて確認してみてください。
ShogoChicago

2016/08/24 03:03 編集

ありがとうございます。ステータスを見てみたところ、まだ「承認する」が押されていない状態でした。つまり、ステータスは承認待ちの状態だと思います。
kei344

2016/08/24 03:11

コメント出力の部分のテンプレートになにか標準のもの以外を使用していませんか?
bananacoffee

2016/08/24 03:15

それであればフロント側のコメントを取得・表示する部分のソースをお見せいただければ何か分かるかもしれませんが可能でしょうか。
kei344

2016/08/24 03:28

質問タイトルに「こ」という一文字が混入していますので、修正お願いします。
guest

回答3

0

ベストアンサー

前準備

  • wp-config.phpに以下を記述
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', WP_DEBUG ); define( 'WP_DEBUG_LOG', WP_DEBUG );
  • 管理画面の新規プラグインインストールでDeveloperというプラグインをインストール
  1. Developerをインストールするとモーダルウィンドウが開くので"Theme for a self-hosted WordPress installation"を選択
  2. 次の画面で名前に"Debug Bar"と付くもの全部、Theme Checkをインストールし有効化

Developerというプラグインは、WordPressの開発に役立つプラグインを簡単インストールできるプラグインです。Developerというプラグイン自体には、それ以上の機能は無いので、用が済んだら削除して問題ありません。

Debug Barは、管理画面の画面上部のバーの右に"Debug"という項目が追加されます。エラーがあった際、このDebugという部分の色が変わりますので、色が変わった場合、修正しましょう。

Theme Checkは、テーマが正しく作られているかチェックできるプラグインです。自身のテーマをチェックさせると、色々問題が分かると思います。

以下を試す

  1. 前準備でインストールしたプラグイン以外のプラグインを全部止める
  2. テーマを標準のテーマに切り替える

1で問題が解消された場合

プラグインを1つずつ有効化し、どのプラグインが問題なのか特定。特定できたら、それが自身が作成したプラグインである場合、バグを修正。第三者が作ったプラグインの場合、バージョンアップを待つ、別のプラグインを探す、Githubなどでソースコードが公開されていて自身で原因特定と対処ができ、テストコードが書ける場合、作者にプルリクエストを送る(オープンソースへの貢献)。

2で問題が解消された場合

  1. テーマを自作のテーマに戻す
  2. 自身のテーマのファイルはどこかにバックアップ
  3. functions.phpからコメントに関するカスタマイズのフックや関数をコメントアウト
  4. comments.phpとsingle.phpを標準テーマからコピーして自身のテーマに上書きし動作確認

2-3で問題が解消された場合

どのカスタマイズが問題なのか特定しバグの修正

2-4で問題が解消された場合

comments.phpとsingle.phpを1つづつ自身のテーマのモノに戻し、どっちが問題なのか特定。問題があった方を、標準テーマのソースコードをお手本に修正。

終わりに

トライアンドエラーですが、ここまでやれば解消できると思います。これを繰り返すことで、その内知識が付いて行き、身体が覚え、解消できる迄の時間も短くなると思います。

投稿2016/08/25 07:39

編集2016/08/25 07:50
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ShogoChicago

2016/08/25 16:35

ありがとうございます。 すべてのプラグインを停止したところ、この問題は起こりませんでした。 最新のものに更新しても同様に問題が解決していたので、どうやら古くなったプラグインが問題だったようです。 初歩的なところでつまづいてしまい、申し訳ございません。 WPの基本的な考え方を丁寧に解説してくださり、ありがとうございました。
guest

0

PHP

1$comments = get_comments( array( 'status' => 'approve' , 'post_id' => $post->ID) );

この内容を確認してみて未承認のものが混ざっていたら、functions.php かプラグインでカスタマイズされてしまっている可能性が高いですね。

試しにこれに変えても変わらないでしょうか。

PHP

1$comments = get_approved_comments($post->ID);

また、そもそもsingle.phpから呼び出されているのであれば get_comments も必要なく、これだけで行けるかもしれません。

PHP

1<?php 2wp_list_comments( array ( 3 'per_page' => $comments_per_page, 4 'reverse_top_level' => false 5) ); 6?>

投稿2016/08/24 03:41

bananacoffee

総合スコア260

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

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

ShogoChicago

2016/08/24 03:48

ありがとうございます。 functions.phpのコメントに関する記述はこれだけでした //「コメントを急いで投稿しすぎているようです。」の解除 remove_filter('comment_flood_filter', 'wp_throttle_comment_flood', 10, 3);
bananacoffee

2016/08/24 04:56

確認いただいたのはfunctions.phpだけですか? ・$comments に未承認のデータが入ってしまっているのか ・get_approved_commentsに変えるとどうなるか 等、こちらからの確認事項に対する回答がないと、こちらからは何とも申し上げられないのですが・・・
ShogoChicago

2016/08/24 06:03

すみません、その2つも実行してみましたが未承認のコメントが掲載されるという状況は変わりませんでした。
bananacoffee

2016/08/24 08:16

表示内容もですが、$commentsに入っているデータそのものを解析してください。 get_commentsのマニュアルはご覧になっているかと思いますが、承認フラグは立っているのでしょうか、もしくは混在してしまっているのでしょうか。 また、対象のコメントのステータスを承認、スパム、削除に変えた場合の表示はどうなるのでしょうか。 仕様外の動作をしてしまっている場合は基本的に虱潰しにして色々試してみてください。 「承認待ちが出てしまう」なのか「承認待ちも」出てしまうなのか。 プラグインを全部止めると、テーマを変えるとどうなるのか。 Wordpressの問題解決の基本です。 私は当事者ではありませんしそのサイトの中まで見ることは出来ないのですから・・・ 厳しい言い方になってしまいますが、ShogoOnoさんがまず試行錯誤して問題を切り出す動きを見せていいただかないとただのコメントと時間の浪費になってしまいます。
ShogoChicago

2016/08/25 16:36

kuck1uさんの回答を参考にプラグインを検証したところ、古いプラグインが原因だったことがわかりました。 初歩的なミスで申し訳ありません。 親切に回答していただき、ありがとうございました。
guest

0

bananacoffeeさんが指摘のとおり、

一度ダッシュボードをログアウトして、ページを再表示してみたら、コメントが表示されていなかったということはないですか?

投稿2016/08/24 02:56

osmoc-1970

総合スコア124

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

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

ShogoChicago

2016/08/24 02:59

ありがとうございます。 ログアウトしてコメントを投稿してみましたが、やはり即時掲載されてしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問