我在 WordPress 中遇到了这样一个不简单的问题。
有一个自定义帖子类型,为简单起见,我们将其称为post_type=>'companies'
。用户有机会在此帖子类型的页面上留下评论,这些评论可以留下两个评分:rating_product
和rating_service
(每个评分从 0 到 5)。根据这些评级,形成了普通用户对该产品的看法:$rating=($rating_product+$rating_service)/2
。这里一切都清楚了。均保存在comments_meta
.
现在的问题是——有一个特定的变量$full_rating
等于所有$Rating值的总和除以用户数量。我们在每个公司“公司”的卡片中显示此值。如何以及在哪里显示它?
*问题是,假设站点管理员删除了用户,这意味着该用户投票的所有内容都必须从每个此类帖子的每个此类变量中删除,以及他的评论$full_rating
。并且用户将如何被删除(或禁用)尚不清楚。
告诉我如何解决这个问题。BMySQL
并不强大,但让我想到的第一件事是表中的某个列wp_post
会以某种方式动态地$full_rating
在每个此类帖子旁边存储一个值。
最好不要在这里搞乱元数据 - 因为你需要同时编写 comments_meta 和 user_meta,并且在删除用户或帖子或评论时,你将不得不进行缓慢的元选择。
这里正确的方法是创建您自己的评级表,其中包含 post_id、comment_id、 rating_type、user_id 列。添加评级时写入,删除帖子、评论、用户、评级时删除,显示评论时读取。好吧,要计算统计数据,还要从中读取。
MySQL 必须要掌握,但它会很快上手。