寻求集中式 WordPress 通知中心

已发表: 2016-04-20

根据我们收到的关于 WordPress 管理员通知被滥用的评论数量,很明显,你们中的一些人和我有同样的感觉。 由于进行了健康的讨论,我学到了一些关于管理员通知的新知识,我想与你分享。

主题也这样做

虽然文章的重点是插件是最大的罪犯,但这个问题也适用于托管在 WordPress 主题目录内外的主题。 在我发现的一个更极端的例子中,今年早些时候,Redux Framework 添加了一个管理员通知,通知用户一个新的商业扩展。

当用户质疑如何删除通知时,Redux Framework 开发人员通过创建商业扩展来回应。

Redux 框架管理员通知
Redux 框架管理员通知

每年 59 美元,该扩展程序从选项面板中删除管理员通知、广告和仪表板新闻小部件。 尽管通知和广告仅在启用框架的开发模式时才显示,但这似乎是一种可笑的创收方式。

在研究本文时,我发现 Redux Framework 的联合创始人兼首席开发人员 Dovy Paukstys 正在从当前和未来的管理员通知中删除广告。 Paukstys 向酒馆提供了以下声明:

作为一名开发人员,我可以看到管理员通知在用作广告时是多么令人沮丧。 为了支持社区的要求,我们将不再使用管理员通知来宣传高级功能。 我们将出于预期目的使用管理员通知,以告知和教育我们的用户。

我们希望其他框架、插件和产品也能效仿。

WP通知中心

受我们文章的启发,WPBeginner 调查了 WordPress 是否需要通知中心。 事实证明,有几个不同的插件和项目正在开发中,旨在解决这个问题。

由 Barry Kooij 和 Never5 开发的 WP Notification Center 插件为 WordPress 添加了一个通知中心。 该插件将管理员通知移动到中心位置,从而释放宝贵的屏幕空间。

WP通知中心
WP通知中心

激活后,通知区域会添加到管理栏。 这会告诉您可用的通知数量并提供快速查看访问。 这些消息也采用颜色编码,以轻松区分更新和错误消息之间的区别。

通知中的链接会将您带到相应的管理页面以查看更多详细信息。 不幸的是,如果不导航到其中的链接,您就无法从管理工具栏中忽略通知。 根据 Kooij 的说法,驳回通知是一个难以解决的问题。

管理员通知是在代码中添加的,所以我无法阻止它们被添加。 这意味着我需要存储哪些通知被驳回,并在每次管理页面加载时检查所有添加的通知,以过滤掉那些被驳回的通知。

与理想情况相反,通知将添加到数据库中,当它被解雇时我可以简单地删除它。

至于将 WP Notification Center 纳入核心的可能性,“我很想为核心编写一个补丁,以正确设置它,”Kooij 说。 “这最终将涉及弃用并停止显示以旧方式添加的通知。”

如果您有兴趣解决此问题或想为项目的其他方面做出贡献,您可以在 GitHub 上找到它,欢迎提出问题和拉取请求。

WordPress 通知 API

在 1 月份的 WordPress 核心开发人员聊天中,John Blackbourn 提出了一个通知 API,它将用可扩展的 API 替换wp_mail() 。 开发人员可以连接该 API,以通过启用 Slack 和 IM 通知的 webhook 发送通知。 还将添加 UI,以便用户和管理员可以选择选择加入/退出的单个通知和类型。

API 与管理员通知没有直接关系,但它们可能会在未来被连接。 Blackbourn 计划在接下来的一两周内发布详细的博客文章,详细介绍这个想法。

喷气背包通知

Jetpack 通过向工具栏添加图标的模块处理通知。 通知包括点赞、评论、关注以及审核和回复评论的能力。

喷气背包通知
喷气背包通知

我一直使用此通知区域来审核和回复评论。 它很方便,通常可以快速加载项目。 但是,如果添加了来自主题和插件的管理员通知,我不确定该界面的工作情况如何。

订阅者可能会看到管理员通知

我了解到的最令人惊讶的事情之一是订阅用户可能会看到管理员通知。 从表面上看,这没有任何意义,因为订阅者没有必要的能力来处理通知。 我通过激活 Yoast SEO 和 All in One SEO 插件在 WP Tavern 测试站点上测试了这个理论。

这是我以管理员身份登录时看到的。

以管理员身份登录时的管理员通知
以管理员身份登录时的管理员通知

这是作为订阅者登录时的同一个仪表板。

以订阅者身份登录时的管理员通知
以订阅者身份登录时的管理员通知

如您所见,以订阅者身份登录时通知会消失。 虽然我最初认为这是核心问题,但它似乎更像是开发人员的问题。 对原文发表评论的 JS Morisset 有一个可能的解释:

“管理员”一词(用于通知)可以用两种方式解释——它们是管理员/后端通知,或者它们是管理员通知。

我一直都知道它们是前者(在管理后端显示的通知),并且可以被任何/所有后端用户看到,所以我在自己的代码中使用 'current_user_can()' 来显示不同的种类的消息。 也许这更多的是开发人员意识问题,而不是核心 WP 问题。

虽然我没有分析我测试的插件中的代码,但 current_user_can() 功能检查可以解释为什么管理员会看到通知而订阅者看不到。

我想在集中式 WordPress 通知中心看到什么

管理员通知是开发人员通知用户重要信息的好方法。 但是,如今所有通知都在轰炸站点管理员,因此需要一个组织用户界面来管理所有通知。 在考虑允许和显示的通知类型时,WordPress 中的通知中心很容易变成一个很深的兔子洞。

我希望看到的是一个通知中心,除了这些项目生成的任何通知之外,它还会通知我核心、插件和主题更新。 我还希望它告诉我网站上的错误。 这些通知应该在一个易于使用的界面中,可以快速访问。 通知应该是可关闭的或具有可以标记为已读的状态。

如上所示,有很多人和项目致力于解决这个问题。 您理想的 WordPress 通知中心是什么?