【发布时间】:2016-03-08 17:53:29
【问题描述】:
我需要为使用 WordPress 作为 CMS 的作者实施公共用户配置文件。每个个人资料都应该有一个选项来评价作者(5 星)并对作者发表评论。 T
我被困在以下问题上 - 很清楚如何处理帖子,但我只是不知道 WordPress 中的用户配置文件是什么(或者它是否存在)。例如。当然我知道帖子和页面作为单独的实体存在,但用户个人资料 - 它存在吗?还是我应该只创建一个自定义帖子类型 - 用户个人资料,仅此而已?
【问题讨论】:
我需要为使用 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 );
使用 cmets 有点棘手 - 正如您所见, cmets 保存时具有帖子 ID 和作者 ID。 将连接到作者的 cmets 仅保存在 wp_cmets 表中可能不是一个好主意,因为 WordPress 不是为此而构建的。但是,您可以使用这种方法找到解决方案。
我建议如下:将属于作者的 cmets 也保存在 wp_usermeta 表中。您可以通过添加一些逻辑使 em 在用户个人资料页面上可编辑。
只要您不期望每个作者有数千个 cmets,如果您将带有评论日期、评论标题、评论作者电子邮件、评论内容等的序列化数组保存到名为“author_cmets”的单个用户元字段中,这不是问题”。
第三种可能性:为具有外键 = 用户 ID 的作者的 cmets 构建自定义表。使用 $wpdb 类填充评论数据 (https://codex.wordpress.org/Class_Reference/wpdb)。
【讨论】: