我们负责一个WordPress插件,作为其功能的一部分,它有一个名为“申请人”的自定义帖子类型。这些是希望购买房产的申请人,因此可以记录他们可以记录联系方式和搜索要求等内容。
现在......我们需要让这些申请人能够登录并执行各种操作,例如将属性保存到“收藏夹”列表,或编辑他们自己的要求。
如果我们从头开始构建插件,我会把它们作为用户完成,但是这是一个数百人使用的插件,所以我们没有那么奢侈,必须把它作为CPT。
我的问题是......在允许这些人登录和注册的同时,我怎样才能保持CPT。
我最初的两个想法是:
或
或
希望这是有道理的。任何想法/想法都是最受欢迎的。
答案 0 :(得分:3)
根据我的经验,我已经为WooThemes Storefront,WooThemes Canvas和WooCommerce以及一些独立的插件编写和管理了2个页面构建器和十几个其他插件...
最后一个选项是我们完全废弃CPT并只使用“用户”#。然后编写某种迁移脚本,将CPT移交给用户。
根据我的经验,迁移脚本适用于小的更改,例如,在您的情况下为帖子类型添加新的默认元字段,但更改对插件函数如此重要的内容不仅需要大量工作(如查询)用户而不是帖子)但也会让你的用户疯狂,他们使用的可能就像使用自定义的帖子循环...所以这是不推荐
我们建立自己的自定义'登录'并且'注册'功能。我们将电子邮件地址和密码存储在自定义帖子中,并使用它来验证它们。然后还执行我们自己的会话管理等。
对于内置于WordPress中的内容来说,这又是太多的工作......也可以跳过这个......
对于每个自定义帖子,您都有一个WordPress用户并保持两个同步(即如果用户被删除,则同时删除自定义帖子)。这样你就可以使用WordPress提供的内置登录和安全功能,但是你有这个噩梦,试图让两者保持同步。
所以事实证明第一个选项似乎是最好的选择...你可以简单地使用user_register
和profile_update
钩子来保持帖子与用户同步并save_post
挂钩让用户与帖子同步。还有一个plugin activation hook可以在激活新版本时从帖子中生成用户。
希望有所帮助。
答案 1 :(得分:2)
我更愿意在wordpress中使用具有角色的用户。
您可以创建另一个角色“申请人”并为其分配所需的功能。这样它就会成为用户模块的一部分,你可以在user_meta中添加尽可能多的信息,这是wordpress默认用来存储用户的额外信息。
很少有关于添加用户角色和功能以及user_meta的参考。
希望这可以帮助您以wordpress CMS的标准方式进行。