我正在使用最新版本的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。我的过滤器获取未更改/未过滤的内容。我不知道这是怎么发生的,也不知道为什么会发生。我本可以想象,如果有一个更高的优先级,我会得到内容,因为到目前为止,它已经被更高优先级的过滤器改变了,否则会出现这样的情况(冲突?)会像这样出现。