Функция wp_notify_moderator()
уведомляет модератора сайта о новом комментарии, который ожидает проверки. Это важно для управления комментариями, требующими модерации, чтобы администраторы могли своевременно принимать меры.
wp_notify_moderator( $comment_id );
Параметры
$comment_id
(int): Идентификатор комментария, который требуется проверить. Этот параметр обязателен.
Возвращаемое значение
Функция всегда возвращает true
.
Примечания
- Функция уведомляет модератора по электронной почте только если в настройках включена опция: Настройки > Обсуждение > Отправить мне письмо, когда > Комментарий ожидает проверки.
- Функция не сработает, если эта опция не активирована.
- Если у автора записи нет прав редактировать комментарии, он не получит уведомление.
- Функция является pluggable, что означает, что её можно переопределить в плагинах. Функция будет доступна только после подключения всех плагинов, и её нельзя вызывать напрямую из кода плагина до этого. Рекомендуется использовать хук
plugins_loaded
или позднее, например,init
, для вызова.
Хуки
Функция wp_notify_moderator()
использует следующие хуки:
notify_moderator
: Позволяет изменить поведение уведомлений.comment_moderation_recipients
: Фильтр для изменения списка получателей уведомлений.comment_moderation_text
: Фильтр для изменения текста уведомления.comment_moderation_subject
: Фильтр для изменения темы уведомления.comment_moderation_headers
: Фильтр для изменения заголовков уведомления.
Пример 1: Изменение стандартной функции
Вы можете создать плагин для переопределения стандартной функции wp_notify_moderator()
. Например:
<?php
/*
Plugin Name: Замена базовой функции wp_notify_moderator()
*/
if ( !function_exists('wp_notify_moderator') ) {
function wp_notify_moderator($comment_id) {
// Здесь можно изменить поведение функции по своему усмотрению.
// Например, можно скопировать базовый код функции и изменить его.
// Получаем информацию о комментарии
$comment = get_comment( $comment_id );
// Пример измененного кода уведомления
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
$subject = sprintf('[%s] Новый комментарий на сайте', $blogname);
$message = sprintf('Комментарий от %s: %s', $comment->comment_author, $comment->comment_content);
// Отправляем уведомление
wp_mail( get_option('admin_email'), $subject, $message );
return true;
}
}
?>
Пример 2: Уведомление модератора.
Предположим, вы хотите настроить уведомления модератору для новых комментариев на вашем сайте. Вот пример кода, который демонстрирует, как это сделать в функции, которая вызывается при добавлении нового комментария:
function notify_moderator_on_new_comment( $comment_id ) {
// Получаем объект комментария по ID
$comment = get_comment( $comment_id );
// Проверяем, что комментарий требует модерации
if ( '1' === $comment->comment_approved ) {
// Отправляем уведомление модератору
wp_notify_moderator( $comment_id );
}
}
add_action( 'comment_post', 'notify_moderator_on_new_comment' );
В этом примере функция notify_moderator_on_new_comment
проверяет, что комментарий требует модерации, и если это так, отправляет уведомление модератору с помощью wp_notify_moderator()
.
Заключение
Функция wp_notify_moderator()
позволяет управлять модерацией комментариев более эффективно. Используя эту функцию, можно настроить автоматические уведомления для модераторов, что упрощает процесс управления комментариями на сайте.