私はWPSEでこのコードを見つけました:
global $current_user, $post;
$args = array( 'user_id' => $current_user->ID, 'post_id' => $post->ID );
$usercomment = get_comments( $args );
if ( 1 <= count( $usercomment ) ) {
echo 'disabled';
} else {
comment_form();
}
注:1ユーザーあたりの投稿あたりのコメント数を制限するようです。
1日の登録ユーザーあたりのコメント数を制限したいです。
コードで1日に許可されるコメントの量を変更できるようにしたいです。
誰かが正しいコードで私を手伝ってくれるなら、それは大いに感謝されるでしょう。また、このコードをcomments.phpファイルのどこに置きますか?
ありがとうございました。
現在のユーザーごとにすべてのコメントを取得してループし、今日の状況を確認することも、カスタムSQLクエリを作成して過去24時間のコメント数だけを選択することもできます。
global $wpdb,$current_user;
$sql = $wpdb->prepare("
SELECT count(*)
FROM wp_comments
WHERE comment_author = '%s'
AND comment_date >= DATE_SUB(NOW(),INTERVAL 1 DAY);"
,$current_user);
$count = $wpdb->get_results($sql);
これが実用的なバージョンです、私はそれを成し遂げるために@Bainternetによるテクニックを参照しました。 <?php comment_form(); ?>
をこのコードに置き換えてください。
<?php
global $wpdb,$current_user;
$limit = 5; //this is limit per day per user
$comment_count = $wpdb->get_var( $wpdb->prepare("
SELECT count(*)
FROM wp_comments
WHERE comment_author = '%s'
AND comment_date >= DATE_SUB(NOW(),INTERVAL 1 DAY);"
,$current_user->user_login) );
if($comment_count < $limit) {
comment_form();
}
else {
echo 'exceeded comments limit - '.$limit;
}
?>
- TwentyTenテーマがon_にインストールされたWordpress 3.4.1でテスト済み
- 単にその日に5つ以上のコメントを持つユーザーからコメントフォームを隠します
Regardless of comment status
- これを -
Discussion Settings
から無効にしない限り、未登録ユーザーにコメントフォームを表示します