Таблица wp_comments
Таблица wp_comments
является одной из ключевых таблиц в WordPress и служит для хранения всех комментариев, оставленных к записям, страницам и другим типам записей сайта. Она содержит информацию об авторе комментария, его содержимом, статусе модерации и связи с родительским объектом.
Поля
Поле | Тип данных | Описание |
---|---|---|
comment_ID |
bigint(20) unsigned |
Уникальный идентификатор комментария (первичный ключ). Имеет автоинкремент. |
comment_post_ID |
bigint(20) unsigned |
ID записи (поста), к которой оставлен комментарий. Внешний ключ, ссылается на ID в таблице wp_posts .
|
comment_author |
tinytext |
Имя автора комментария. Заполняется, даже если комментатор не зарегистрирован на сайте. |
comment_author_email |
varchar(100) |
Email адрес автора комментария. |
comment_author_url |
varchar(200) |
URL сайта автора комментария. |
comment_author_IP |
varchar(100) |
IP-адрес, с которого был оставлен комментарий. Используется для модерации и борьбы со спамом. |
comment_date |
datetime |
Дата и время создания комментария. |
comment_date_gmt |
datetime |
Дата и время создания комментария по времени GMT (Greenwich Mean Time). |
comment_content |
text |
Текст (тело) комментария. |
comment_karma |
int(11) |
Поле "кармы" комментария. Редко используется по умолчанию, но может быть задействовано плагинами для рейтинговой системы. |
comment_approved |
varchar(20) |
Статус одобрения комментария. Основные значения: 1 (одобрен), 0 (ожидает модерации), spam (помечен как спам), trash (в корзине).
|
comment_agent |
varchar(255) |
User Agent браузера или клиента, с которого был оставлен комментарий. |
comment_type |
varchar(20) |
Тип комментария. По умолчанию имеет значение comment . Может также содержать trackback , pingback или значения, установленные плагинами (например, review для отзывов).
|
comment_parent |
bigint(20) unsigned |
ID родительского комментария, если данный комментарий является ответом на другой. Позволяет организовывать древовидные структуры обсуждений. Ссылается на comment_ID в этой же таблице.
|
user_id |
bigint(20) unsigned |
ID пользователя WordPress, который оставил комментарий, если он был авторизован. Если комментарий оставлен гостем, значение равно 0 . Внешний ключ, ссылается на ID в таблице wp_users .
|
Как это работает
Когда посетитель сайта отправляет форму комментария, WordPress создает новую запись в таблице wp_comments
. Поле comment_post_ID
связывает комментарий с конкретной записью, что позволяет отображать все комментарии к ней.
Статус комментария (comment_approved
) определяется настройками обсуждения в админ-панели WordPress. Если включена премодерация, комментарий получит статус 0
и появится в списке ожидающих, пока администратор не одобрит его (статус 1
) или не отметит как спам.
Для зарегистрированных пользователей поле user_id
заполняется их ID, а их имя и email автоматически подставляются из профиля. Для гостей эти данные заполняются вручную, а user_id
остается равным 0
.
Поле comment_parent
позволяет создавать иерархические комментарии (ветки обсуждений). Ответ на комментарий будет иметь в этом поле comment_ID
того комментария, на который был дан ответ.
Трекбэки и пингбэки, которые являются автоматическими уведомлениями между блогами, также хранятся в этой таблице и имеют соответствующий тип (comment_type
).
Пример SQL-запроса
Выбрать все одобренные комментарии для конкретной записи вместе с именем пользователя (если он авторизован) можно следующим запросом:
SELECT
c.comment_ID,
c.comment_date,
c.comment_author,
c.comment_content,
u.user_login,
u.display_name
FROM wp_comments c
LEFT JOIN wp_users u ON (c.user_id = u.ID)
WHERE c.comment_post_ID = 42
AND c.comment_approved = '1'
ORDER BY c.comment_date ASC;
Смотрите также
-
таблицу
wp_posts
,
которая хранит записи, к которым leftлены комментарии -
таблицу
wp_users
,
которая хранит данные зарегистрированных пользователей -
таблицу
wp_commentmeta
,
которая хранит дополнительную мета-информацию о комментариях