html - Wordpress 更新后删除文件前缀
问题描述
TL;DR - 为什么 Wordpress 从文件链接中删除 file://?
我们的 Intranet 页面有一个包含图标的部分,图标后面带有链接。突然之间(我们的猜测是在更新之后),其中一个链接停止工作。链接如下(一):
<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/
添加上面的代码为我解决了这个问题,所以我希望这可以帮助其他人在未来解决类似的问题。
推荐阅读
- facebook - 如何从 Facebook 获取封面视频网址?
- python - 为什么我的 OpenGL 程序无法加载 GLUT 位图字体?
- r - 仅当 ggplot 中的值 A 大于值 B 时,如何对两个时间序列之间的区域进行着色?
- ruby-on-rails - Rails 关联并传递另一个模型 :id 作为参数
- r - 逐行操作距离 R
- swift - 在 constantsToExport 中导出快速枚举
- python - 如何为 ExifTool 命令格式化 GPS 坐标?
- python - 替换熊猫中的字符串或对象
- python - 从不同的路径调用 python 脚本并更改路径
- html - 可滚动内容到百分比大小的 div