Описание функции wp_allow_comment()
Функция wp_allow_comment() определяет, разрешено ли добавление комментариев к конкретной записи на основе её статуса, настроек и прав пользователя.
Это полезно для проверки перед тем, как пользователь сможет оставить комментарий, и помогает избежать добавления комментариев к записям, где это не предусмотрено.
Параметры
$post
Тип: WP_Post
Обязательный: Да
Описание: Объект поста, к которому добавляется комментарий
Возможные значения:
post_type: post, page, custom_post_type
post_status: publish, pending, draft, future, private
comment_status: open, closed
$user
Тип: WP_User
Обязательный: Нет
Описание: Объект пользователя, оставляющего комментарий (опционально)
Возвращаемое значение
Тип: bool
Описание: Возвращает true, если комментарий разрешен, иначе false
Возможные значения:
• true — комментарий может быть добавлен
• false — комментарий не может быть добавлен
Примеры использования
Базовый пример проверки возможности добавления комментария
$post = get_post(1);
if (wp_allow_comment($post)) {
echo 'Комментарии разрешены.';
} else {
echo 'Комментарии закрыты.';
}
Проверка для поста с ID 1
Проверка возможности добавления комментария с учетом пользователя
$post = get_post(1);
$user = wp_get_current_user();
if (wp_allow_comment($post, $user)) {
echo 'Пользователь может комментировать.';
} else {
echo 'Пользователь не может комментировать.';
}
Используется текущий пользователь
Безопасность
Валидация входных данных: Параметры проверяются на предмет правильности внутри функции
Санитизация: Объекты поста и пользователя проходят валидацию WordPress
Рекомендации: При выводе сообщений используйте esc_html() для безопасности
— Связанные функции
Проверяет, разрешены ли комментарии для поста
Получает статус конкретного поста
— Хуки
Фильтрует результат перед возвратом из функции wp_allow_comment()
— Примечания
– Ограничения
Не проверяет кастомные ограничения на уровне плагинов
– Частые проблемы
- Можно получить false, если комментарии закрыты или пост в статусе, который не разрешает комментарии