【问题标题】:Wordpress drops file prefix after updateWordpress 更新后删除文件前缀
【发布时间】:2021-01-04 08:50:02
【问题描述】:

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 卡住(很遗憾)。

【问题讨论】:

  • 几个问题:1) 这是在更新到 WP 5.5.1 之后吗? 2) 你是否安装了 TinyMCE Advanced 插件?我猜这与 TinyMCE 的工作方式有关,并将 url 转换为相对路径与绝对路径。
  • @disinfor 在顶部我看到一条消息“WordPress 5.5.1 可用 - 立即更新”,所以我们还没有这个版本。我找到了 TinyMCE 插件,它是活跃的。

标签: html wordpress network-share file-link


【解决方案1】:

我发现了另一个关于这个问题的问题: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/

添加上面的代码为我解决了这个问题,所以我希望这有助于其他人在未来解决类似的问题。

【讨论】:

    猜你喜欢
    • 2017-07-08
    • 2012-08-15
    • 2011-10-23
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    相关资源
    最近更新 更多