Connect Users and Taxonomies

时间:2014-02-20 作者:suntrop

我想在保存新帖子时发送电子邮件通知。但用户可以选择他们想要订阅的帖子类别。可用的插件对我来说不是解决方案——我真的需要自己的代码库。尽管我对WP还很陌生,但这一切都没有问题……但我不知道如何将自定义分类法与用户连接起来。

是否可以在用户配置文件页面(复选框)上列出所有类别,并将主题保存在usermeta表中?或者,您的意思是最好将所有订阅放在一个新表中,并使用第三个数据透视表来连接分类法和用户?

还是其他解决方案?任何想法都很感激:-)非常感谢!

2 个回复
最合适的回答,由SO网友:dashaluna 整理而成

我偶然看到一篇关于\'Custom User Taxonomies in WordPress\' 还有一个插件基于此\'User Taxonomies\' 但这些是为用户创建分类法的。请仔细阅读本教程,它可能会有所帮助。

我认为你所说的是将帖子的分类法与用户关联起来。我想你需要使用wp_set_object_terms (Codex)来创建用户和分类术语之间的关系,因此您将有如下内容:

wp_set_object_terms( $object_id, $terms, $taxonomy, $append )
  • $object\\u id-将是您的用户id
  • $terms-对应的terms
  • $分类法-对应的分类法
  • $append-false。每次用户保存他/她选择的要订阅的分类术语时,您都需要检查它们并再次添加它们(以防以前勾选的内容被取消勾选)
每当删除用户/分类法/分类法术语时,您需要确保清理数据库,因此您应该清理之前创建的对象和分类法术语之间的关系。使用wp_delete_object_term_relationships (法典)。

我希望这为你指明了正确的方向。

SO网友:azurgruen

我也在使用用户分类代码片段。

然而,我强烈建议不要将用户和帖子混用在一个分类法中。这意味着为用户和帖子注册分类法。

wp\\u term\\u relationships表只存储一个object\\u id。一旦有一个post和一个具有相同id的用户,所有事情都会变得一团糟,因为这样一来,该术语就会同时分配给具有该id的user和post。

我的解决方案是注册两个分类法,每种类型(post、user)一个,并通过编程方式在两个分类法中添加/删除/更改术语来保持术语库的同步。(使用这些挂钩:created\\u term、pre\\u delete\\u term、edited\\u term)

结束

相关推荐

Client Profiles

正在寻找创建客户机数据库的最佳方法。插件能最好地实现以下功能吗?我的客户端数据库插件存储有关客户端的个人信息和统计信息,这些信息和统计信息将通过自定义字段和自定义表单收集,管理员创建客户端配置文件后,仪表板选项卡将打开列表区域(类似于用户选项卡)(仅限管理员)“添加新”功能(类似于仪表板的用户区域)。管理员可以将客户端分配给用户,分配给用户的客户端显示为用户元数据。分配给用户的客户端将在用户配置文件中可见,仪表板小部件显示为登录用户分配的客户端,并带有指向客户端配置文件页面的链接。插件是解决此问题的解决方