无法将网络共享路径保存为 wordpress 3.1 中的链接

Posted

技术标签:

【中文标题】无法将网络共享路径保存为 wordpress 3.1 中的链接【英文标题】:can't save network share path as a link in wordpress 3.1 【发布时间】:2018-09-24 01:37:54 【问题描述】:

在我的 WordPress 3.1 管理面板中,在 appearance 下有一个 Menus 选项。 对于 URL 输入,我需要输入 file://network path/path1/path2/index.htm,但是当我点击保存时,该值消失了。如果我输入http://network path/path1/path2/index.htm 它可以工作。好像它不接受 FILE 协议,而只接受 HTTP 协议。如何找到实际的 php 文件,以便使用链接对其进行硬编码?还是有其他选择?

【问题讨论】:

您希望您网站的访问者如何将文件保存在他们的文件系统中?发给他们?这个问题没有意义,因为如果你使用文件协议,这些只能在你的计算机上工作。 确实有道理。该网站托管在一个组织中。每个用户都映射了网络共享。 【参考方案1】:

这是我知道的一个老问题,但我刚刚遇到它,接受的答案不是将允许的协议添加到 WordPress 的正确方法。不应修改核心 WordPress 文件,因为任何修改都会在 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/

【讨论】:

【参考方案2】:

我找到了解决方案。 在 wp-includes/formatting.php 中有一行:

$protocols = array ('http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn');

我刚刚将文件添加到数组中,现在它在菜单中接受文件协议

【讨论】:

以上是关于无法将网络共享路径保存为 wordpress 3.1 中的链接的主要内容,如果未能解决你的问题,请参考以下文章

无法与 Docker 中的容器共享本地 Windows 路径

Paypal IPN 和 wordpress 失败

win10怎么映射网络驱动器,怎么连接共享文件夹

win10怎么映射网络驱动器,怎么连接共享文件夹

PHP 无法从 NFS 共享读取会话

wordpress登陆界面黑屏