Мне нужно реализовать публичные профили пользователей для авторов, которые используют WordPress в качестве CMS. Каждый профиль должен иметь возможность оценить автора (5 звезд) и оставить комментарий к автору. T
Я застрял в следующем — понятно, как это сделать с постами, но я просто не понимаю, что такое профиль пользователя в WordPress (или он вообще существует). Например. я точно знаю, что сообщения и страницы существуют как отдельные объекты, но профиль пользователя — существует ли он? Или мне просто создать собственный тип поста — профиль пользователя и все?
Нравится этот вопрос. Как вы можете видеть из описания базы данных WordPress, пользователи не воспринимаются как посты / страницы / пользовательские типы постов в WordPress.
https://codex.wordpress.org/Database_Description
Сообщения сохраняются в таблице wp_posts, которая имеет собственную таблицу wp_postmeta для сохранения дополнительной информации. Пользователи сохраняются в таблице wp_users, которая также имеет свою собственную таблицу wp_usermeta для сохранения дополнительной информации.
Если ваши авторы на самом деле пользователи, которые могут войти в WordPress, чтобы создавать и публиковать сообщения Вы не должны использовать пользовательский тип поста, а создавать настоящих авторов как пользователей.
Реализация рейтинга автора должна быть очень простой — сохраните оценки для каждого пользователя в таблице wp_usermeta с помощью следующей функции:
update_user_meta( $user_id, $meta_key, $meta_value, $prev_value );
С комментариями это немного сложнее — как вы видите, комментарии сохраняются с идентификатором поста и идентификатором автора. Вероятно, не стоит сохранять комментарии, связанные с автором, только в таблице wp_comments, так как WordPress для этого не создан.. Однако вы МОЖЕТЕ найти решение, используя этот подход.
Я бы порекомендовал следующее: Сохраните комментарии, принадлежащие автору, также в таблице wp_usermeta. Вы можете сделать их редактируемыми на странице профиля пользователя, добавив немного логики.
Пока вы не ожидаете тысячи комментариев от автора, это не проблема, если вы сохраните сериализованный массив с датой комментария, заголовком комментария, электронной почтой автора комментария, содержимым комментария и т. Д. В одно пользовательское метаполе с именем «author_comments».
Третья возможность: создать пользовательскую таблицу для комментариев авторов с внешним ключом = идентификатор пользователя. Используйте класс $ wpdb для заполнения его данными комментария (https://codex.wordpress.org/Class_Reference/wpdb).
Других решений пока нет …