Intereting Posts
Как добавить виджет в главное меню Заменить аудио / видео корпус проигрывателем? Добавление элементов в раскрывающийся шаблон шаблона страницы на экране редактирования страницы Администраторы WordPress или роли на странице Добавьте класс 'has_children' в родительский li при изменении Walker_Nav_Menu Можно ли интегрировать загрузчик медиабиблиотеки в тему или плагин, не требуя собственного кода? Переопределить вложенные файлы шаблонов файлов i Нотинг, но последнее содержимое сообщения продолжает загружаться родитель get_terms только для текущего продукта Существует ли WP способ получения дескриптора файла? Пользовательские типы сообщений – используйте post_id в структуре permalink при использовании has_archive => true Могу ли я создать галерею NextGen из галереи WordPress Изменение таксономических страниц для исключения элементов в таксономиях детей Как я могу использовать один и тот же файл шаблона с виджетами и циклами категорий? Импорт изображений с изображениями в сообщения, дублирование изображения

Пользователь может публиковать только один комментарий в день на одной странице

Этот код подсчитывает комментарии в день на всех страницах. Я хочу, чтобы это учитывалось только на одной странице в течение 1 дня. Таким образом, мой случай: на странице с идентификатором 1 пользователь может прокомментировать любой лимит, но на странице с идентификатором 2 и тот же пользователь может прокомментировать один раз в день.

 <?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; } 

Solutions Collecting From Web of "Пользователь может публиковать только один комментарий в день на одной странице"

Ограничение комментариев в день и на пользователя уже встроено в ваш текущий запрос. Единственное, чего не хватает, это проверить идентификатор сообщения. Вот довольно удобный тег функции / шаблона:

 /** * @param int $limit * @param int $time * @param int $ids */ function is_user_limit_reached( $limit = 5, $time = 1, $ids = array() ) { global $wpdb; // Cast to array ! is_array( $limited ) AND $limited = array( $limited ); // Generate SQL clause $ids = ! empty( $ids ) ? sprintf( " and comment_post_ID in (%s)", join( ",", $ids ) ) : ""; // Rows: user_id, comment_date, comment_post_ID $count = $wpdb->query( $wpdb->prepare( "select count(*) from {$wpdb->comments} where user_id=%d and comment_date >= date_sub( now(), interval %d day ) %s", get_current_user_id(), $time, $ids ) ); return $count >= $limit; } 

Вы можете использовать его следующим образом:

 if ( is_user_limit_reached( 10, // allowed comments per day 7, // in the last 7 days array( 1, 35, 97, 1148 ) // array of post IDs which have a limit ) ) { echo 'Your limit is already reached. Come back tomorrow'; } else { comment_form(); } 

Вы также можете включить или отключить тег шаблона блока комментариев и т. Д. Небо – ваш предел.