お世話になっております。
wordpressでは記事へついたコメントが非承認状態だと
非承認数が通知マークとして管理バーやサイドバーへ表示されます。
現在、subscriberの管理バーやサイドバーへ
全記事を対象にしたコメント非承認の総合値が通知マークとして
表示されています。
subscriberには、自身が作成した記事への
コメント非承認数を表示させたいです。
調査の結果
comment.phpで非承認数を管理しているようでした。
(デフォルト状態だと352行付近かと思われます)
php
1function get_comment_count( $post_id = 0 ) { 2 global $wpdb; 3 4 $post_id = (int) $post_id; 5 6 $where = ''; 7 if ( $post_id > 0 ) { 8 $where = $wpdb->prepare("WHERE comment_post_ID = %d", $post_id); 9 } 10 11 $totals = (array) $wpdb->get_results(" 12 SELECT comment_approved, COUNT( * ) AS total 13 FROM {$wpdb->comments} 14 {$where} 15 GROUP BY comment_approved 16 ", ARRAY_A); 17
上記コードの中にある
php
1$where = $wpdb->prepare("WHERE comment_post_ID = %d", $post_id);
ここで記事IDを指定できるので、
php
1$where = $wpdb->prepare("WHERE comment_post_ID = %d or comment_post_ID = %d", 1,2);
このように現在、ログイン中の会員が作成した記事IDを取得し
ORで繋いでクエリを作れば目的が達成することは分かりました。
今ハマっている問題は
・動的に1,2の部分を1,2,3,4,5・・・と可変(動的)に拡張していく方法が分からない。
・クエリ文が凄く長くなってしまう可能性がある。
他にもっと良い方法もあると思うのですが、
現時点での実力ではこのような方法にたどり着きました。
解決方法があればお教え願えますでしょうか?
よろしくお願い致します。
wordpressのバージョン 4.9.5–ja
PHPのバージョン 7.1.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/24 12:04
2018/04/24 12:14