如何为CPT创建审核点系统(多对多关系)

时间:2022-01-03 作者:usanzadunje

我正在从事一个Wordpress项目,其中我有电影、书籍和游戏作为自定义帖子类型。任何登录的用户都可以向每个CPT添加星星(查看点)。

我的实现方法是创建新的CPT,称为review。当用户单击star向certaint CPT添加评论点时,它会创建类型为review的新帖子,其本身具有元字段review\\u post\\id(保留用户添加评论点的帖子(电影、书籍、游戏)的id)和review\\u score(保留用户选择的分数(1-5分))。

为了显示平均评论分数,我只需遍历所有具有ceratin post的review\\u post\\id的评论,然后将它们相加,除以评论数。由于评论是自定义的帖子类型,我可以向每个用户显示自己的评论分数。

现在,我问这个问题主要是想看看这是否是正确的方法(因为相同的原理可以用于许多其他用例),也因为更有经验的开发人员告诉我,我不应该创建新的CPT(review),而应该使用Wordpress的post\\u meta table。

但我认为使用wp\\u posts\\u meta无法克服这一问题,因为这是多对多关系,用户和帖子是一对多关系。

欢迎提出任何建议。

提前感谢,新年快乐!

编辑:我发现可以使用自定义评论类型将用户链接到某个帖子,这可能是解决方案,因为这种关系显然是多对多的,我可以在评论元表中存储评论分数(点)。我只是想听听你对做这件事的最佳方式的看法。

2 个回复
SO网友:Sébastien Serre

由于您处于WP生态系统中,请使用它。已经有很多插件在做;审查制度;https://wordpress.org/plugins/search/reviews/

找到一个最符合您需求的插件,然后通过所选插件中的过滤器和操作进行改进。

--编辑——如果您不想使用插件。我认为只有当你想在复习中做笔记+复习时,才需要CPT。如果你只需要一个注释(1到5),那么一个用点击的星星数更新的帖子元(注释给出)就可以了。

SO网友:usanzadunje

最后,我使用了类型为的注释表review 其中包含用户实际点击明星的user\\u id(给出了评论)和包含他正在评论的帖子(电影、书籍、游戏)的post\\u id。然后对于给定的分数(1-5颗星),我只使用评论元来存储它。

这让我可以灵活地显示每个用户的开始次数,以及特定帖子的平均全明星数。

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在