WordPress自动链接纯文本电子邮件地址

时间:2011-04-18 作者:Jorge Israel Peña

我正在使用最新版本的WordPress(3.1.1)。只是我,还是WordPress现在自动链接纯文本电子邮件地址?

I类型[email protected] 作为注释显示为<a href="mailto:[email protected]">[email protected]</a>

我正在开发一个插件,该插件使用get_comment_text 过滤并随后修改电子邮件地址的显示方式。这个插件以前工作得很好,但正如我所说,现在WordPress自动链接电子邮件地址。

我想WordPress会遵循自己的规则,并通过过滤器来实现,所以我继续为我自己的过滤器添加了一个优先级9000 在WordPress完成后,我可以用这种方式强迫我的手机触发,但这并不管用。

我想知道这里是否有人知道这种情况的解决方法,或者至少,是否有了解该系统的人可以向我指出负责这种自动链接的来源。

我的插件已经具备了处理纯文本电子邮件的功能,但这也被破坏了,因为在它修改了纯文本电子邮件的呈现方式后,WordPress会去链接它。

EDIT: 波尼指给我的一个把戏make_clickable 对此负责。它确实是作为过滤器添加的wp-includes/default-filters.php, 优先权为9. 然而,正如我上面提到的,我已经尝试将优先级设置为9000 让我的插件在WordPress做了肮脏的事情后工作。这不起作用,是因为我得到了原始的未过滤内容吗?我想我会得到过滤后的内容(即已经链接的内容)。

因此,我继续启动了纯文本过滤器(适用于纯文本电子邮件),并将其作为-9000 这样它就能在make_clickable, 但还是没什么好结果因为make_clickable 火了,它继续前进,并认为将我创建的链接链接化是一个好主意。它“链接”中的URLhref 链接的属性,导致输出非常混乱。

因此,似乎最好的办法是在wordpress完成业务后,在make_clickable 已启动,但正如我所说的,由于某种原因,即使我应用过滤器的优先级为9000, 与…相比make_clickable 其优先级仅为9, 似乎什么都没发生。我会继续调查。

我可以理解并想象WordPress开发人员正试图变得更加用户友好,但这似乎导致了一些边缘案例问题(例如,链接化现有链接中的href属性)。

任何帮助都将不胜感激。

EDIT 2: 是的,我刚刚测试了优先级为9000的过滤器,我想应该在WordPress之后运行make_clickable 其优先级为9。我的过滤器获取未更改/未过滤的内容。我不知道这是怎么发生的,也不知道为什么会发生。我本可以想象,如果有一个更高的优先级,我会得到内容,因为到目前为止,它已经被更高优先级的过滤器改变了,否则会出现这样的情况(冲突?)会像这样出现。

1 个回复
SO网友:Jorge Israel Peña

我注意到wordpressmake_clickable 过滤器已连接到comment_text 过滤器挂钩和非get_comment_text, 我已经用了一段时间了。我之前曾研究过是否存在这种情况,特别是找出了两者之间的区别,我想我读到了一些关于comment_text 使用get_comment_text, 因此,可能它不止一次地做了一些事情,导致了我发现的奇怪输出。

我通过将过滤器改为挂钩解决了这个问题comment_text 相反,这样优先级就会起作用(duh),并保持我的过滤器的优先级为9000。初步测试表明一切正常。这样,我就不必担心wordpress会以不可预测的方式修改我的输出,相反,我可以处理wordpress吐出来的内容。至少这样,我知道我可以处理什么,不能处理什么。

再次感谢一匹耍花招的小马给了我领先的机会。

结束

相关推荐

New post email alert

我想显示一个复选框,其中包含通过电子邮件订阅网站的选项我看到一个wordpress博客,上面的复选框旁边有以下标签通过电子邮件订阅此网站问题是我找不到显示它的插件:我尝试了Subscribe2、Post Notification和Gurken进行评论订阅。你知道我需要安装什么插件吗?