更新后,WordPress会删除文件前缀

问题描述

TL; DR-为什么wordpress文件链接删除file://?

我们的Intranet页面上有一个部分,其中包含图标及其后的链接。突然之间(我们的猜测是在更新之后),其中一个链接停止了工作。链接如下(1):

<a href="file://vmdata/meetings" target="_blank"><img src="/img/meetings.jpg" style="width:75px; height:75px;"/></a>

(在Internet Explorer(2)中)的预期行为是文件浏览器打开,并指向共享\ vmdata \ meetings,该共享文件迄今为止一直有效。

当我将鼠标悬停在图标图像上时,会看到以下代码

http://vmdata/meetings

当我通过查看页面代码检查HTML时,我发现file://前缀确实消失了:

<a href="//vmdata/meetings" target="_blank" rel="noopener noreferrer">

要变通解决此问题,我看了一个页面,原始创建者在该页面添加了相同类型的链接。我的想法是创建一个类似的页面,复制页面上的HTML代码,然后将图标链接到该页面。我添加页面和HTML链接,但查看页面后,结果完全相同:file://前缀消失了。

我的猜测是wordpress中的某些内容正在重写/删除file://链接。现在我的问题是双重的:如何停止这种重写/删除行为,和/或如何像以前一样向文件共享添加链接

PS:该网站的创建者不再可用,并且该网站正在运行且尚未受管。只剩下内容创建者。我们内部没有wordpress知识,因此我们基本上只是在尝试保持该网站的正常运行(等待一个新网站)。

(1)我意识到从Intranet站点指向服务器共享是发布文件的非常难看的方法。但是,如前所述,如果您的应用没有崩溃,请不要使用此网站进行修复,因此,我们只想恢复正常工作。创建一个页面链接到(托管)文档会更好,但是由于各种原因,这是不可行的。

(2),请不要烦恼指出(不再使用Internet Explorer),我们都知道这一点,但是我们坚持使用它,因为这是我们日常使用的主要工具之一的要求。只要该工具不支持其他浏览器,我们就只能使用IE。

解决方法

我发现了与此问题有关的另一个问题:can't save network share path as a link in wordpress 3.1

显然,将允许的协议添加到WordPress的正确方法是修改functions.php文件并添加以下代码:

function allowed_link_protocols_filter($protocols)
{
   $protocols[] = 'file';
   return $protocols;
}
add_filter('kses_allowed_protocols','allowed_link_protocols_filter');

更多信息,请参见以下文章:https://developer.wordpress.org/reference/hooks/kses_allowed_protocols/

添加上面的代码为我解决了这个问题,因此我希望这可以帮助其他人将来解决类似的问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...