Как разрешить пользователям видеть только те комменты в админке, которые оставлены к их постам

По умолчанию пользователи с ролями авторов и участников в любом случае не могут редактировать комментарии, оставленные к чужим постам.

Тем не менее, если вы хотите полностью скрыть от них эти комменты, вставляем код в functions.php:

function true_get_comments_by_user_posts($clauses) {
	if (is_admin()) {
		global $wpdb, $user_ID;
		$clauses['join'] = ", {$wpdb->prefix}posts";
		$clauses['where'] .= " AND {$wpdb->prefix}posts.post_author = ".$user_ID." AND {$wpdb->prefix}comments.comment_post_ID = {$wpdb->prefix}posts.ID";
	}
	return $clauses;
}
 
// включаем фильтр, если у пользователя нет прав на редактирование чужих постов, то есть он либо автор, либо участник, либо подписчик
if(!current_user_can('edit_others_posts')) {
	add_filter('comments_clauses', 'true_get_comments_by_user_posts');
}

После установки этого кода возможны некоторые несоответствия значений счетчика, например:

баг счетчика комментариев

Как видно из скриншота, к постам какого-то автора оставлено всего два комментария, однако счетчик показывает 9 штук на модерацию, а если перейти на вкладку «Ожидающие», то мы увидим вот что:

комментарии, ожидающие проверки

Такой вот небольшой баг, я не стал ради него заморачиваться и рыскать в файлах движка в поисках подходящих хуков.

Если решение всё же найдется, я обязательно добавлю его в этот пост.

Подпишитесь, чтобы раз в неделю получать свежие статьи с блога по email.

Смотрите также

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...