Symlink是本地开发的插件,工作正常,但收到调试错误消息-Windows 10

时间:2016-05-16 作者:hrsetyono

我了解到WP 3.9+支持符号链接(Article here).

因此,我的插件位于C:\\Github\\my-plugin. 当我的项目在C:\\Project\\my-site.

我使用以下命令成功地将其符号化(以管理员身份运行):

mklink /d C:\\Project\\my-site\\wp-content\\plugins\\my-plugin C:\\Github\\my-plugin
符号链接插件WORKS 但我在所有页面上都收到了以下调试消息:

Warning: fopen(C:/Project/my-site/wp-content/plugins/my-plugin/C:/Github/my-plugin/index.php):
failed to open stream: Invalid argument in
C:\\Project\\my-site\\wp-includes\\functions.php on line 4568

Warning: fread() expects parameter 1 to be resource, boolean given in
C:\\Project\\my-site\\wp-includes\\functions.php on line 4571
正如你所看到的,WordPress检测到的路径是我的站点和插件的合并,因此它无法读取文件。但奇怪的是,插件运行良好。

Anyone successfully symlinked a plugin in Windows 10?

谢谢

[EDIT]

找到问题。我在Github上托管了我的插件,并在网上找到了一个代码片段,可以通过管理面板进行更新。

该代码段具有硬编码目录,因此不会检测到符号链接的url。

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

不确定根本原因,但应避免使用文件的相对路径。因为它们是相对的,所以您永远无法确定文件的确切位置。这甚至可能成为一种安全风险,因为PHP可能会在默认目录中查找文件。

正确的方法是使用plugin_dir_path, 类似于

require_once plugin_dir_path(__FILE__).\'github-updater.php\';